{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5c565407",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "fd63ebc9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 201)\n",
      "(1, 101)\n",
      "(101, 201)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('Allen_Cahn.mat')\n",
    "\n",
    "# Following is the code to plot the data u vs x and t. u is 256*100\n",
    "# matrix. Use first 75 columns for training and 25 for testing :)\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u']\n",
    "\n",
    "# Use the loaded variables as needed\n",
    "print(x.shape)\n",
    "print(t.shape)\n",
    "print(u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u), np.max(u), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure()\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Allen-cahn-Equation')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "bdd66d0b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "\n",
    "\n",
    "# Define the LSTM model\n",
    "class LSTM(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, output_size):\n",
    "        super(LSTM, self).__init__()\n",
    "\n",
    "        self.hidden_size = hidden_size\n",
    "\n",
    "        self.lstm = nn.LSTM(input_size, hidden_size, batch_first=True)\n",
    "        self.fc = nn.Linear(hidden_size, output_size)\n",
    "\n",
    "    def forward(self, x, hidden):\n",
    "        output, hidden = self.lstm(x, hidden)\n",
    "        output = self.fc(output)\n",
    "        return output, hidden\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "bbe38e48",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('X.mat')\n",
    "\n",
    "X = mat_data['X']\n",
    "\n",
    "mat_data1 = scipy.io.loadmat('y_pred.mat')\n",
    "\n",
    "u1 = mat_data1['y_pred']\n",
    "\n",
    "np.set_printoptions(threshold=np.inf)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "f37b9eca",
   "metadata": {},
   "outputs": [],
   "source": [
    "u1 = u1.reshape(101, 201)\n",
    "u1_new = u1.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0c20b3b3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tani (20301, 1)\n"
     ]
    }
   ],
   "source": [
    "# Load the .mat file\n",
    "mat_data2 = scipy.io.loadmat('y_true.mat')\n",
    "\n",
    "u2 = mat_data2['y_true']\n",
    "print(\"tani\", u2.shape)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "4f3a65e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "\n",
    "# # Define custom color levels\n",
    "c_levels = np.linspace(np.min(u1_new),  np.max(u1_new), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure()\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u1_new.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Allen-cahn-Equation')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "9e870afb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Toy problem data\n",
    "input_size = 201  # number of columns in a dataset\n",
    "hidden_size = 32  # number of neurons\n",
    "output_size = 201\n",
    "sequence_length = 80  # number of sequences/ number of rows\n",
    "batch_size = 1\n",
    "num_epochs = 20000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ed181dc1",
   "metadata": {},
   "outputs": [],
   "source": [
    "u1 = u1_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "d05b74dc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (201, 20)\n",
      "test target shape (201, 20)\n",
      "input data shape (201, 80)\n",
      "Target data shape (201, 80)\n"
     ]
    }
   ],
   "source": [
    "input_data = u1[:, 0:80]\n",
    "target_data = u1[:, 1:81]\n",
    "\n",
    "test_data = u1[:, 80:100]\n",
    "test_target = u1[:, 81:101]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "e2f8359c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "input tensor shape torch.Size([1, 80, 201])\n",
      "Target tensor shape torch.Size([1, 80, 201])\n"
     ]
    }
   ],
   "source": [
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "14aed18b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 20, input_size).float()\n",
    "test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c258c108",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.0580\n",
      "Epoch: 20/20000, Loss: 0.0262\n",
      "Epoch: 30/20000, Loss: 0.0107\n",
      "Epoch: 40/20000, Loss: 0.0051\n",
      "Epoch: 50/20000, Loss: 0.0030\n",
      "Epoch: 60/20000, Loss: 0.0023\n",
      "Epoch: 70/20000, Loss: 0.0019\n",
      "Epoch: 80/20000, Loss: 0.0016\n",
      "Epoch: 90/20000, Loss: 0.0011\n",
      "Epoch: 100/20000, Loss: 0.0007\n",
      "Epoch: 110/20000, Loss: 0.0005\n",
      "Epoch: 120/20000, Loss: 0.0004\n",
      "Epoch: 130/20000, Loss: 0.0003\n",
      "Epoch: 140/20000, Loss: 0.0002\n",
      "Epoch: 150/20000, Loss: 0.0002\n",
      "Epoch: 160/20000, Loss: 0.0002\n",
      "Epoch: 170/20000, Loss: 0.0002\n",
      "Epoch: 180/20000, Loss: 0.0002\n",
      "Epoch: 190/20000, Loss: 0.0002\n",
      "Epoch: 200/20000, Loss: 0.0001\n",
      "Epoch: 210/20000, Loss: 0.0001\n",
      "Epoch: 220/20000, Loss: 0.0001\n",
      "Epoch: 230/20000, Loss: 0.0001\n",
      "Epoch: 240/20000, Loss: 0.0001\n",
      "Epoch: 250/20000, Loss: 0.0001\n",
      "Epoch: 260/20000, Loss: 0.0001\n",
      "Epoch: 270/20000, Loss: 0.0001\n",
      "Epoch: 280/20000, Loss: 0.0001\n",
      "Epoch: 290/20000, Loss: 0.0001\n",
      "Epoch: 300/20000, Loss: 0.0002\n",
      "Epoch: 310/20000, Loss: 0.0001\n",
      "Epoch: 320/20000, Loss: 0.0001\n",
      "Epoch: 330/20000, Loss: 0.0001\n",
      "Epoch: 340/20000, Loss: 0.0001\n",
      "Epoch: 350/20000, Loss: 0.0001\n",
      "Epoch: 360/20000, Loss: 0.0001\n",
      "Epoch: 370/20000, Loss: 0.0001\n",
      "Epoch: 380/20000, Loss: 0.0000\n",
      "Epoch: 390/20000, Loss: 0.0000\n",
      "Epoch: 400/20000, Loss: 0.0000\n",
      "Epoch: 410/20000, Loss: 0.0000\n",
      "Epoch: 420/20000, Loss: 0.0000\n",
      "Epoch: 430/20000, Loss: 0.0000\n",
      "Epoch: 440/20000, Loss: 0.0001\n",
      "Epoch: 450/20000, Loss: 0.0001\n",
      "Epoch: 460/20000, Loss: 0.0000\n",
      "Epoch: 470/20000, Loss: 0.0000\n",
      "Epoch: 480/20000, Loss: 0.0000\n",
      "Epoch: 490/20000, Loss: 0.0000\n",
      "Epoch: 500/20000, Loss: 0.0000\n",
      "Epoch: 510/20000, Loss: 0.0000\n",
      "Epoch: 520/20000, Loss: 0.0000\n",
      "Epoch: 530/20000, Loss: 0.0000\n",
      "Epoch: 540/20000, Loss: 0.0000\n",
      "Epoch: 550/20000, Loss: 0.0000\n",
      "Epoch: 560/20000, Loss: 0.0000\n",
      "Epoch: 570/20000, Loss: 0.0000\n",
      "Epoch: 580/20000, Loss: 0.0000\n",
      "Epoch: 590/20000, Loss: 0.0000\n",
      "Epoch: 600/20000, Loss: 0.0000\n",
      "Epoch: 610/20000, Loss: 0.0000\n",
      "Epoch: 620/20000, Loss: 0.0000\n",
      "Epoch: 630/20000, Loss: 0.0000\n",
      "Epoch: 640/20000, Loss: 0.0001\n",
      "Epoch: 650/20000, Loss: 0.0000\n",
      "Epoch: 660/20000, Loss: 0.0001\n",
      "Epoch: 670/20000, Loss: 0.0000\n",
      "Epoch: 680/20000, Loss: 0.0000\n",
      "Epoch: 690/20000, Loss: 0.0000\n",
      "Epoch: 700/20000, Loss: 0.0000\n",
      "Epoch: 710/20000, Loss: 0.0000\n",
      "Epoch: 720/20000, Loss: 0.0000\n",
      "Epoch: 730/20000, Loss: 0.0000\n",
      "Epoch: 740/20000, Loss: 0.0000\n",
      "Epoch: 750/20000, Loss: 0.0000\n",
      "Epoch: 760/20000, Loss: 0.0000\n",
      "Epoch: 770/20000, Loss: 0.0000\n",
      "Epoch: 780/20000, Loss: 0.0000\n",
      "Epoch: 790/20000, Loss: 0.0000\n",
      "Epoch: 800/20000, Loss: 0.0000\n",
      "Epoch: 810/20000, Loss: 0.0000\n",
      "Epoch: 820/20000, Loss: 0.0000\n",
      "Epoch: 830/20000, Loss: 0.0000\n",
      "Epoch: 840/20000, Loss: 0.0000\n",
      "Epoch: 850/20000, Loss: 0.0000\n",
      "Epoch: 860/20000, Loss: 0.0000\n",
      "Epoch: 870/20000, Loss: 0.0000\n",
      "Epoch: 880/20000, Loss: 0.0000\n",
      "Epoch: 890/20000, Loss: 0.0003\n",
      "Epoch: 900/20000, Loss: 0.0001\n",
      "Epoch: 910/20000, Loss: 0.0000\n",
      "Epoch: 920/20000, Loss: 0.0000\n",
      "Epoch: 930/20000, Loss: 0.0000\n",
      "Epoch: 940/20000, Loss: 0.0000\n",
      "Epoch: 950/20000, Loss: 0.0000\n",
      "Epoch: 960/20000, Loss: 0.0000\n",
      "Epoch: 970/20000, Loss: 0.0000\n",
      "Epoch: 980/20000, Loss: 0.0000\n",
      "Epoch: 990/20000, Loss: 0.0000\n",
      "Epoch: 1000/20000, Loss: 0.0000\n",
      "Epoch: 1010/20000, Loss: 0.0000\n",
      "Epoch: 1020/20000, Loss: 0.0000\n",
      "Epoch: 1030/20000, Loss: 0.0000\n",
      "Epoch: 1040/20000, Loss: 0.0000\n",
      "Epoch: 1050/20000, Loss: 0.0000\n",
      "Epoch: 1060/20000, Loss: 0.0000\n",
      "Epoch: 1070/20000, Loss: 0.0000\n",
      "Epoch: 1080/20000, Loss: 0.0000\n",
      "Epoch: 1090/20000, Loss: 0.0000\n",
      "Epoch: 1100/20000, Loss: 0.0000\n",
      "Epoch: 1110/20000, Loss: 0.0000\n",
      "Epoch: 1120/20000, Loss: 0.0000\n",
      "Epoch: 1130/20000, Loss: 0.0000\n",
      "Epoch: 1140/20000, Loss: 0.0000\n",
      "Epoch: 1150/20000, Loss: 0.0000\n",
      "Epoch: 1160/20000, Loss: 0.0000\n",
      "Epoch: 1170/20000, Loss: 0.0000\n",
      "Epoch: 1180/20000, Loss: 0.0002\n",
      "Epoch: 1190/20000, Loss: 0.0000\n",
      "Epoch: 1200/20000, Loss: 0.0000\n",
      "Epoch: 1210/20000, Loss: 0.0000\n",
      "Epoch: 1220/20000, Loss: 0.0000\n",
      "Epoch: 1230/20000, Loss: 0.0000\n",
      "Epoch: 1240/20000, Loss: 0.0000\n",
      "Epoch: 1250/20000, Loss: 0.0000\n",
      "Epoch: 1260/20000, Loss: 0.0000\n",
      "Epoch: 1270/20000, Loss: 0.0000\n",
      "Epoch: 1280/20000, Loss: 0.0000\n",
      "Epoch: 1290/20000, Loss: 0.0000\n",
      "Epoch: 1300/20000, Loss: 0.0000\n",
      "Epoch: 1310/20000, Loss: 0.0000\n",
      "Epoch: 1320/20000, Loss: 0.0000\n",
      "Epoch: 1330/20000, Loss: 0.0000\n",
      "Epoch: 1340/20000, Loss: 0.0000\n",
      "Epoch: 1350/20000, Loss: 0.0000\n",
      "Epoch: 1360/20000, Loss: 0.0000\n",
      "Epoch: 1370/20000, Loss: 0.0000\n",
      "Epoch: 1380/20000, Loss: 0.0000\n",
      "Epoch: 1390/20000, Loss: 0.0000\n",
      "Epoch: 1400/20000, Loss: 0.0002\n",
      "Epoch: 1410/20000, Loss: 0.0000\n",
      "Epoch: 1420/20000, Loss: 0.0000\n",
      "Epoch: 1430/20000, Loss: 0.0000\n",
      "Epoch: 1440/20000, Loss: 0.0000\n",
      "Epoch: 1450/20000, Loss: 0.0000\n",
      "Epoch: 1460/20000, Loss: 0.0000\n",
      "Epoch: 1470/20000, Loss: 0.0000\n",
      "Epoch: 1480/20000, Loss: 0.0000\n",
      "Epoch: 1490/20000, Loss: 0.0000\n",
      "Epoch: 1500/20000, Loss: 0.0000\n",
      "Epoch: 1510/20000, Loss: 0.0000\n",
      "Epoch: 1520/20000, Loss: 0.0000\n",
      "Epoch: 1530/20000, Loss: 0.0000\n",
      "Epoch: 1540/20000, Loss: 0.0000\n",
      "Epoch: 1550/20000, Loss: 0.0000\n",
      "Epoch: 1560/20000, Loss: 0.0000\n",
      "Epoch: 1570/20000, Loss: 0.0000\n",
      "Epoch: 1580/20000, Loss: 0.0000\n",
      "Epoch: 1590/20000, Loss: 0.0000\n",
      "Epoch: 1600/20000, Loss: 0.0000\n",
      "Epoch: 1610/20000, Loss: 0.0000\n",
      "Epoch: 1620/20000, Loss: 0.0000\n",
      "Epoch: 1630/20000, Loss: 0.0000\n",
      "Epoch: 1640/20000, Loss: 0.0000\n",
      "Epoch: 1650/20000, Loss: 0.0000\n",
      "Epoch: 1660/20000, Loss: 0.0000\n",
      "Epoch: 1670/20000, Loss: 0.0000\n",
      "Epoch: 1680/20000, Loss: 0.0000\n",
      "Epoch: 1690/20000, Loss: 0.0002\n",
      "Epoch: 1700/20000, Loss: 0.0001\n",
      "Epoch: 1710/20000, Loss: 0.0000\n",
      "Epoch: 1720/20000, Loss: 0.0000\n",
      "Epoch: 1730/20000, Loss: 0.0000\n",
      "Epoch: 1740/20000, Loss: 0.0000\n",
      "Epoch: 1750/20000, Loss: 0.0000\n",
      "Epoch: 1760/20000, Loss: 0.0000\n",
      "Epoch: 1770/20000, Loss: 0.0000\n",
      "Epoch: 1780/20000, Loss: 0.0000\n",
      "Epoch: 1790/20000, Loss: 0.0000\n",
      "Epoch: 1800/20000, Loss: 0.0000\n",
      "Epoch: 1810/20000, Loss: 0.0000\n",
      "Epoch: 1820/20000, Loss: 0.0000\n",
      "Epoch: 1830/20000, Loss: 0.0000\n",
      "Epoch: 1840/20000, Loss: 0.0000\n",
      "Epoch: 1850/20000, Loss: 0.0000\n",
      "Epoch: 1860/20000, Loss: 0.0000\n",
      "Epoch: 1870/20000, Loss: 0.0000\n",
      "Epoch: 1880/20000, Loss: 0.0000\n",
      "Epoch: 1890/20000, Loss: 0.0000\n",
      "Epoch: 1900/20000, Loss: 0.0000\n",
      "Epoch: 1910/20000, Loss: 0.0000\n",
      "Epoch: 1920/20000, Loss: 0.0000\n",
      "Epoch: 1930/20000, Loss: 0.0000\n",
      "Epoch: 1940/20000, Loss: 0.0000\n",
      "Epoch: 1950/20000, Loss: 0.0000\n",
      "Epoch: 1960/20000, Loss: 0.0000\n",
      "Epoch: 1970/20000, Loss: 0.0000\n",
      "Epoch: 1980/20000, Loss: 0.0000\n",
      "Epoch: 1990/20000, Loss: 0.0000\n",
      "Epoch: 2000/20000, Loss: 0.0000\n",
      "Epoch: 2010/20000, Loss: 0.0001\n",
      "Epoch: 2020/20000, Loss: 0.0000\n",
      "Epoch: 2030/20000, Loss: 0.0000\n",
      "Epoch: 2040/20000, Loss: 0.0000\n",
      "Epoch: 2050/20000, Loss: 0.0000\n",
      "Epoch: 2060/20000, Loss: 0.0000\n",
      "Epoch: 2070/20000, Loss: 0.0000\n",
      "Epoch: 2080/20000, Loss: 0.0000\n",
      "Epoch: 2090/20000, Loss: 0.0000\n",
      "Epoch: 2100/20000, Loss: 0.0000\n",
      "Epoch: 2110/20000, Loss: 0.0000\n",
      "Epoch: 2120/20000, Loss: 0.0000\n",
      "Epoch: 2130/20000, Loss: 0.0000\n",
      "Epoch: 2140/20000, Loss: 0.0000\n",
      "Epoch: 2150/20000, Loss: 0.0000\n",
      "Epoch: 2160/20000, Loss: 0.0001\n",
      "Epoch: 2170/20000, Loss: 0.0000\n",
      "Epoch: 2180/20000, Loss: 0.0000\n",
      "Epoch: 2190/20000, Loss: 0.0000\n",
      "Epoch: 2200/20000, Loss: 0.0000\n",
      "Epoch: 2210/20000, Loss: 0.0000\n",
      "Epoch: 2220/20000, Loss: 0.0000\n",
      "Epoch: 2230/20000, Loss: 0.0000\n",
      "Epoch: 2240/20000, Loss: 0.0000\n",
      "Epoch: 2250/20000, Loss: 0.0000\n",
      "Epoch: 2260/20000, Loss: 0.0000\n",
      "Epoch: 2270/20000, Loss: 0.0000\n",
      "Epoch: 2280/20000, Loss: 0.0000\n",
      "Epoch: 2290/20000, Loss: 0.0000\n",
      "Epoch: 2300/20000, Loss: 0.0000\n",
      "Epoch: 2310/20000, Loss: 0.0000\n",
      "Epoch: 2320/20000, Loss: 0.0001\n",
      "Epoch: 2330/20000, Loss: 0.0000\n",
      "Epoch: 2340/20000, Loss: 0.0000\n",
      "Epoch: 2350/20000, Loss: 0.0000\n",
      "Epoch: 2360/20000, Loss: 0.0000\n",
      "Epoch: 2370/20000, Loss: 0.0000\n",
      "Epoch: 2380/20000, Loss: 0.0000\n",
      "Epoch: 2390/20000, Loss: 0.0000\n",
      "Epoch: 2400/20000, Loss: 0.0000\n",
      "Epoch: 2410/20000, Loss: 0.0000\n",
      "Epoch: 2420/20000, Loss: 0.0000\n",
      "Epoch: 2430/20000, Loss: 0.0000\n",
      "Epoch: 2440/20000, Loss: 0.0000\n",
      "Epoch: 2450/20000, Loss: 0.0000\n",
      "Epoch: 2460/20000, Loss: 0.0002\n",
      "Epoch: 2470/20000, Loss: 0.0001\n",
      "Epoch: 2480/20000, Loss: 0.0000\n",
      "Epoch: 2490/20000, Loss: 0.0000\n",
      "Epoch: 2500/20000, Loss: 0.0000\n",
      "Epoch: 2510/20000, Loss: 0.0000\n",
      "Epoch: 2520/20000, Loss: 0.0000\n",
      "Epoch: 2530/20000, Loss: 0.0000\n",
      "Epoch: 2540/20000, Loss: 0.0000\n",
      "Epoch: 2550/20000, Loss: 0.0000\n",
      "Epoch: 2560/20000, Loss: 0.0000\n",
      "Epoch: 2570/20000, Loss: 0.0000\n",
      "Epoch: 2580/20000, Loss: 0.0000\n",
      "Epoch: 2590/20000, Loss: 0.0000\n",
      "Epoch: 2600/20000, Loss: 0.0000\n",
      "Epoch: 2610/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 2620/20000, Loss: 0.0000\n",
      "Epoch: 2630/20000, Loss: 0.0000\n",
      "Epoch: 2640/20000, Loss: 0.0000\n",
      "Epoch: 2650/20000, Loss: 0.0000\n",
      "Epoch: 2660/20000, Loss: 0.0000\n",
      "Epoch: 2670/20000, Loss: 0.0000\n",
      "Epoch: 2680/20000, Loss: 0.0000\n",
      "Epoch: 2690/20000, Loss: 0.0000\n",
      "Epoch: 2700/20000, Loss: 0.0000\n",
      "Epoch: 2710/20000, Loss: 0.0000\n",
      "Epoch: 2720/20000, Loss: 0.0000\n",
      "Epoch: 2730/20000, Loss: 0.0000\n",
      "Epoch: 2740/20000, Loss: 0.0000\n",
      "Epoch: 2750/20000, Loss: 0.0000\n",
      "Epoch: 2760/20000, Loss: 0.0000\n",
      "Epoch: 2770/20000, Loss: 0.0000\n",
      "Epoch: 2780/20000, Loss: 0.0000\n",
      "Epoch: 2790/20000, Loss: 0.0000\n",
      "Epoch: 2800/20000, Loss: 0.0000\n",
      "Epoch: 2810/20000, Loss: 0.0000\n",
      "Epoch: 2820/20000, Loss: 0.0000\n",
      "Epoch: 2830/20000, Loss: 0.0000\n",
      "Epoch: 2840/20000, Loss: 0.0000\n",
      "Epoch: 2850/20000, Loss: 0.0000\n",
      "Epoch: 2860/20000, Loss: 0.0000\n",
      "Epoch: 2870/20000, Loss: 0.0000\n",
      "Epoch: 2880/20000, Loss: 0.0000\n",
      "Epoch: 2890/20000, Loss: 0.0000\n",
      "Epoch: 2900/20000, Loss: 0.0000\n",
      "Epoch: 2910/20000, Loss: 0.0000\n",
      "Epoch: 2920/20000, Loss: 0.0000\n",
      "Epoch: 2930/20000, Loss: 0.0000\n",
      "Epoch: 2940/20000, Loss: 0.0000\n",
      "Epoch: 2950/20000, Loss: 0.0000\n",
      "Epoch: 2960/20000, Loss: 0.0000\n",
      "Epoch: 2970/20000, Loss: 0.0000\n",
      "Epoch: 2980/20000, Loss: 0.0000\n",
      "Epoch: 2990/20000, Loss: 0.0000\n",
      "Epoch: 3000/20000, Loss: 0.0000\n",
      "Epoch: 3010/20000, Loss: 0.0000\n",
      "Epoch: 3020/20000, Loss: 0.0000\n",
      "Epoch: 3030/20000, Loss: 0.0000\n",
      "Epoch: 3040/20000, Loss: 0.0000\n",
      "Epoch: 3050/20000, Loss: 0.0000\n",
      "Epoch: 3060/20000, Loss: 0.0000\n",
      "Epoch: 3070/20000, Loss: 0.0000\n",
      "Epoch: 3080/20000, Loss: 0.0000\n",
      "Epoch: 3090/20000, Loss: 0.0000\n",
      "Epoch: 3100/20000, Loss: 0.0000\n",
      "Epoch: 3110/20000, Loss: 0.0000\n",
      "Epoch: 3120/20000, Loss: 0.0000\n",
      "Epoch: 3130/20000, Loss: 0.0000\n",
      "Epoch: 3140/20000, Loss: 0.0000\n",
      "Epoch: 3150/20000, Loss: 0.0000\n",
      "Epoch: 3160/20000, Loss: 0.0000\n",
      "Epoch: 3170/20000, Loss: 0.0000\n",
      "Epoch: 3180/20000, Loss: 0.0000\n",
      "Epoch: 3190/20000, Loss: 0.0000\n",
      "Epoch: 3200/20000, Loss: 0.0000\n",
      "Epoch: 3210/20000, Loss: 0.0000\n",
      "Epoch: 3220/20000, Loss: 0.0001\n",
      "Epoch: 3230/20000, Loss: 0.0000\n",
      "Epoch: 3240/20000, Loss: 0.0000\n",
      "Epoch: 3250/20000, Loss: 0.0000\n",
      "Epoch: 3260/20000, Loss: 0.0000\n",
      "Epoch: 3270/20000, Loss: 0.0000\n",
      "Epoch: 3280/20000, Loss: 0.0000\n",
      "Epoch: 3290/20000, Loss: 0.0000\n",
      "Epoch: 3300/20000, Loss: 0.0000\n",
      "Epoch: 3310/20000, Loss: 0.0000\n",
      "Epoch: 3320/20000, Loss: 0.0000\n",
      "Epoch: 3330/20000, Loss: 0.0000\n",
      "Epoch: 3340/20000, Loss: 0.0000\n",
      "Epoch: 3350/20000, Loss: 0.0000\n",
      "Epoch: 3360/20000, Loss: 0.0000\n",
      "Epoch: 3370/20000, Loss: 0.0000\n",
      "Epoch: 3380/20000, Loss: 0.0000\n",
      "Epoch: 3390/20000, Loss: 0.0000\n",
      "Epoch: 3400/20000, Loss: 0.0000\n",
      "Epoch: 3410/20000, Loss: 0.0000\n",
      "Epoch: 3420/20000, Loss: 0.0000\n",
      "Epoch: 3430/20000, Loss: 0.0000\n",
      "Epoch: 3440/20000, Loss: 0.0000\n",
      "Epoch: 3450/20000, Loss: 0.0000\n",
      "Epoch: 3460/20000, Loss: 0.0000\n",
      "Epoch: 3470/20000, Loss: 0.0002\n",
      "Epoch: 3480/20000, Loss: 0.0001\n",
      "Epoch: 3490/20000, Loss: 0.0000\n",
      "Epoch: 3500/20000, Loss: 0.0000\n",
      "Epoch: 3510/20000, Loss: 0.0000\n",
      "Epoch: 3520/20000, Loss: 0.0000\n",
      "Epoch: 3530/20000, Loss: 0.0000\n",
      "Epoch: 3540/20000, Loss: 0.0000\n",
      "Epoch: 3550/20000, Loss: 0.0000\n",
      "Epoch: 3560/20000, Loss: 0.0000\n",
      "Epoch: 3570/20000, Loss: 0.0000\n",
      "Epoch: 3580/20000, Loss: 0.0000\n",
      "Epoch: 3590/20000, Loss: 0.0000\n",
      "Epoch: 3600/20000, Loss: 0.0001\n",
      "Epoch: 3610/20000, Loss: 0.0000\n",
      "Epoch: 3620/20000, Loss: 0.0000\n",
      "Epoch: 3630/20000, Loss: 0.0000\n",
      "Epoch: 3640/20000, Loss: 0.0000\n",
      "Epoch: 3650/20000, Loss: 0.0000\n",
      "Epoch: 3660/20000, Loss: 0.0000\n",
      "Epoch: 3670/20000, Loss: 0.0000\n",
      "Epoch: 3680/20000, Loss: 0.0000\n",
      "Epoch: 3690/20000, Loss: 0.0000\n",
      "Epoch: 3700/20000, Loss: 0.0000\n",
      "Epoch: 3710/20000, Loss: 0.0000\n",
      "Epoch: 3720/20000, Loss: 0.0000\n",
      "Epoch: 3730/20000, Loss: 0.0000\n",
      "Epoch: 3740/20000, Loss: 0.0000\n",
      "Epoch: 3750/20000, Loss: 0.0000\n",
      "Epoch: 3760/20000, Loss: 0.0000\n",
      "Epoch: 3770/20000, Loss: 0.0000\n",
      "Epoch: 3780/20000, Loss: 0.0000\n",
      "Epoch: 3790/20000, Loss: 0.0000\n",
      "Epoch: 3800/20000, Loss: 0.0000\n",
      "Epoch: 3810/20000, Loss: 0.0000\n",
      "Epoch: 3820/20000, Loss: 0.0000\n",
      "Epoch: 3830/20000, Loss: 0.0000\n",
      "Epoch: 3840/20000, Loss: 0.0000\n",
      "Epoch: 3850/20000, Loss: 0.0000\n",
      "Epoch: 3860/20000, Loss: 0.0000\n",
      "Epoch: 3870/20000, Loss: 0.0000\n",
      "Epoch: 3880/20000, Loss: 0.0000\n",
      "Epoch: 3890/20000, Loss: 0.0000\n",
      "Epoch: 3900/20000, Loss: 0.0000\n",
      "Epoch: 3910/20000, Loss: 0.0000\n",
      "Epoch: 3920/20000, Loss: 0.0000\n",
      "Epoch: 3930/20000, Loss: 0.0000\n",
      "Epoch: 3940/20000, Loss: 0.0000\n",
      "Epoch: 3950/20000, Loss: 0.0000\n",
      "Epoch: 3960/20000, Loss: 0.0000\n",
      "Epoch: 3970/20000, Loss: 0.0000\n",
      "Epoch: 3980/20000, Loss: 0.0000\n",
      "Epoch: 3990/20000, Loss: 0.0000\n",
      "Epoch: 4000/20000, Loss: 0.0000\n",
      "Epoch: 4010/20000, Loss: 0.0000\n",
      "Epoch: 4020/20000, Loss: 0.0000\n",
      "Epoch: 4030/20000, Loss: 0.0000\n",
      "Epoch: 4040/20000, Loss: 0.0000\n",
      "Epoch: 4050/20000, Loss: 0.0000\n",
      "Epoch: 4060/20000, Loss: 0.0000\n",
      "Epoch: 4070/20000, Loss: 0.0000\n",
      "Epoch: 4080/20000, Loss: 0.0000\n",
      "Epoch: 4090/20000, Loss: 0.0000\n",
      "Epoch: 4100/20000, Loss: 0.0000\n",
      "Epoch: 4110/20000, Loss: 0.0000\n",
      "Epoch: 4120/20000, Loss: 0.0000\n",
      "Epoch: 4130/20000, Loss: 0.0000\n",
      "Epoch: 4140/20000, Loss: 0.0000\n",
      "Epoch: 4150/20000, Loss: 0.0000\n",
      "Epoch: 4160/20000, Loss: 0.0000\n",
      "Epoch: 4170/20000, Loss: 0.0001\n",
      "Epoch: 4180/20000, Loss: 0.0000\n",
      "Epoch: 4190/20000, Loss: 0.0000\n",
      "Epoch: 4200/20000, Loss: 0.0000\n",
      "Epoch: 4210/20000, Loss: 0.0000\n",
      "Epoch: 4220/20000, Loss: 0.0000\n",
      "Epoch: 4230/20000, Loss: 0.0000\n",
      "Epoch: 4240/20000, Loss: 0.0000\n",
      "Epoch: 4250/20000, Loss: 0.0000\n",
      "Epoch: 4260/20000, Loss: 0.0000\n",
      "Epoch: 4270/20000, Loss: 0.0000\n",
      "Epoch: 4280/20000, Loss: 0.0000\n",
      "Epoch: 4290/20000, Loss: 0.0000\n",
      "Epoch: 4300/20000, Loss: 0.0000\n",
      "Epoch: 4310/20000, Loss: 0.0000\n",
      "Epoch: 4320/20000, Loss: 0.0000\n",
      "Epoch: 4330/20000, Loss: 0.0000\n",
      "Epoch: 4340/20000, Loss: 0.0000\n",
      "Epoch: 4350/20000, Loss: 0.0000\n",
      "Epoch: 4360/20000, Loss: 0.0000\n",
      "Epoch: 4370/20000, Loss: 0.0000\n",
      "Epoch: 4380/20000, Loss: 0.0000\n",
      "Epoch: 4390/20000, Loss: 0.0000\n",
      "Epoch: 4400/20000, Loss: 0.0000\n",
      "Epoch: 4410/20000, Loss: 0.0000\n",
      "Epoch: 4420/20000, Loss: 0.0000\n",
      "Epoch: 4430/20000, Loss: 0.0000\n",
      "Epoch: 4440/20000, Loss: 0.0000\n",
      "Epoch: 4450/20000, Loss: 0.0000\n",
      "Epoch: 4460/20000, Loss: 0.0000\n",
      "Epoch: 4470/20000, Loss: 0.0000\n",
      "Epoch: 4480/20000, Loss: 0.0000\n",
      "Epoch: 4490/20000, Loss: 0.0000\n",
      "Epoch: 4500/20000, Loss: 0.0000\n",
      "Epoch: 4510/20000, Loss: 0.0000\n",
      "Epoch: 4520/20000, Loss: 0.0000\n",
      "Epoch: 4530/20000, Loss: 0.0000\n",
      "Epoch: 4540/20000, Loss: 0.0000\n",
      "Epoch: 4550/20000, Loss: 0.0001\n",
      "Epoch: 4560/20000, Loss: 0.0000\n",
      "Epoch: 4570/20000, Loss: 0.0000\n",
      "Epoch: 4580/20000, Loss: 0.0000\n",
      "Epoch: 4590/20000, Loss: 0.0000\n",
      "Epoch: 4600/20000, Loss: 0.0000\n",
      "Epoch: 4610/20000, Loss: 0.0000\n",
      "Epoch: 4620/20000, Loss: 0.0000\n",
      "Epoch: 4630/20000, Loss: 0.0000\n",
      "Epoch: 4640/20000, Loss: 0.0000\n",
      "Epoch: 4650/20000, Loss: 0.0000\n",
      "Epoch: 4660/20000, Loss: 0.0000\n",
      "Epoch: 4670/20000, Loss: 0.0000\n",
      "Epoch: 4680/20000, Loss: 0.0000\n",
      "Epoch: 4690/20000, Loss: 0.0000\n",
      "Epoch: 4700/20000, Loss: 0.0000\n",
      "Epoch: 4710/20000, Loss: 0.0000\n",
      "Epoch: 4720/20000, Loss: 0.0000\n",
      "Epoch: 4730/20000, Loss: 0.0000\n",
      "Epoch: 4740/20000, Loss: 0.0000\n",
      "Epoch: 4750/20000, Loss: 0.0000\n",
      "Epoch: 4760/20000, Loss: 0.0000\n",
      "Epoch: 4770/20000, Loss: 0.0000\n",
      "Epoch: 4780/20000, Loss: 0.0000\n",
      "Epoch: 4790/20000, Loss: 0.0000\n",
      "Epoch: 4800/20000, Loss: 0.0000\n",
      "Epoch: 4810/20000, Loss: 0.0000\n",
      "Epoch: 4820/20000, Loss: 0.0000\n",
      "Epoch: 4830/20000, Loss: 0.0000\n",
      "Epoch: 4840/20000, Loss: 0.0000\n",
      "Epoch: 4850/20000, Loss: 0.0000\n",
      "Epoch: 4860/20000, Loss: 0.0000\n",
      "Epoch: 4870/20000, Loss: 0.0000\n",
      "Epoch: 4880/20000, Loss: 0.0000\n",
      "Epoch: 4890/20000, Loss: 0.0000\n",
      "Epoch: 4900/20000, Loss: 0.0000\n",
      "Epoch: 4910/20000, Loss: 0.0000\n",
      "Epoch: 4920/20000, Loss: 0.0000\n",
      "Epoch: 4930/20000, Loss: 0.0000\n",
      "Epoch: 4940/20000, Loss: 0.0000\n",
      "Epoch: 4950/20000, Loss: 0.0000\n",
      "Epoch: 4960/20000, Loss: 0.0000\n",
      "Epoch: 4970/20000, Loss: 0.0000\n",
      "Epoch: 4980/20000, Loss: 0.0000\n",
      "Epoch: 4990/20000, Loss: 0.0000\n",
      "Epoch: 5000/20000, Loss: 0.0000\n",
      "Epoch: 5010/20000, Loss: 0.0000\n",
      "Epoch: 5020/20000, Loss: 0.0000\n",
      "Epoch: 5030/20000, Loss: 0.0000\n",
      "Epoch: 5040/20000, Loss: 0.0000\n",
      "Epoch: 5050/20000, Loss: 0.0000\n",
      "Epoch: 5060/20000, Loss: 0.0000\n",
      "Epoch: 5070/20000, Loss: 0.0001\n",
      "Epoch: 5080/20000, Loss: 0.0000\n",
      "Epoch: 5090/20000, Loss: 0.0000\n",
      "Epoch: 5100/20000, Loss: 0.0000\n",
      "Epoch: 5110/20000, Loss: 0.0000\n",
      "Epoch: 5120/20000, Loss: 0.0000\n",
      "Epoch: 5130/20000, Loss: 0.0000\n",
      "Epoch: 5140/20000, Loss: 0.0000\n",
      "Epoch: 5150/20000, Loss: 0.0000\n",
      "Epoch: 5160/20000, Loss: 0.0000\n",
      "Epoch: 5170/20000, Loss: 0.0000\n",
      "Epoch: 5180/20000, Loss: 0.0000\n",
      "Epoch: 5190/20000, Loss: 0.0000\n",
      "Epoch: 5200/20000, Loss: 0.0001\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 5210/20000, Loss: 0.0000\n",
      "Epoch: 5220/20000, Loss: 0.0000\n",
      "Epoch: 5230/20000, Loss: 0.0000\n",
      "Epoch: 5240/20000, Loss: 0.0000\n",
      "Epoch: 5250/20000, Loss: 0.0000\n",
      "Epoch: 5260/20000, Loss: 0.0000\n",
      "Epoch: 5270/20000, Loss: 0.0000\n",
      "Epoch: 5280/20000, Loss: 0.0000\n",
      "Epoch: 5290/20000, Loss: 0.0001\n",
      "Epoch: 5300/20000, Loss: 0.0000\n",
      "Epoch: 5310/20000, Loss: 0.0000\n",
      "Epoch: 5320/20000, Loss: 0.0000\n",
      "Epoch: 5330/20000, Loss: 0.0000\n",
      "Epoch: 5340/20000, Loss: 0.0000\n",
      "Epoch: 5350/20000, Loss: 0.0000\n",
      "Epoch: 5360/20000, Loss: 0.0000\n",
      "Epoch: 5370/20000, Loss: 0.0000\n",
      "Epoch: 5380/20000, Loss: 0.0000\n",
      "Epoch: 5390/20000, Loss: 0.0000\n",
      "Epoch: 5400/20000, Loss: 0.0000\n",
      "Epoch: 5410/20000, Loss: 0.0000\n",
      "Epoch: 5420/20000, Loss: 0.0000\n",
      "Epoch: 5430/20000, Loss: 0.0000\n",
      "Epoch: 5440/20000, Loss: 0.0002\n",
      "Epoch: 5450/20000, Loss: 0.0000\n",
      "Epoch: 5460/20000, Loss: 0.0000\n",
      "Epoch: 5470/20000, Loss: 0.0000\n",
      "Epoch: 5480/20000, Loss: 0.0000\n",
      "Epoch: 5490/20000, Loss: 0.0000\n",
      "Epoch: 5500/20000, Loss: 0.0000\n",
      "Epoch: 5510/20000, Loss: 0.0000\n",
      "Epoch: 5520/20000, Loss: 0.0000\n",
      "Epoch: 5530/20000, Loss: 0.0000\n",
      "Epoch: 5540/20000, Loss: 0.0000\n",
      "Epoch: 5550/20000, Loss: 0.0000\n",
      "Epoch: 5560/20000, Loss: 0.0000\n",
      "Epoch: 5570/20000, Loss: 0.0000\n",
      "Epoch: 5580/20000, Loss: 0.0000\n",
      "Epoch: 5590/20000, Loss: 0.0000\n",
      "Epoch: 5600/20000, Loss: 0.0000\n",
      "Epoch: 5610/20000, Loss: 0.0000\n",
      "Epoch: 5620/20000, Loss: 0.0000\n",
      "Epoch: 5630/20000, Loss: 0.0000\n",
      "Epoch: 5640/20000, Loss: 0.0000\n",
      "Epoch: 5650/20000, Loss: 0.0000\n",
      "Epoch: 5660/20000, Loss: 0.0000\n",
      "Epoch: 5670/20000, Loss: 0.0000\n",
      "Epoch: 5680/20000, Loss: 0.0000\n",
      "Epoch: 5690/20000, Loss: 0.0000\n",
      "Epoch: 5700/20000, Loss: 0.0000\n",
      "Epoch: 5710/20000, Loss: 0.0000\n",
      "Epoch: 5720/20000, Loss: 0.0000\n",
      "Epoch: 5730/20000, Loss: 0.0000\n",
      "Epoch: 5740/20000, Loss: 0.0000\n",
      "Epoch: 5750/20000, Loss: 0.0000\n",
      "Epoch: 5760/20000, Loss: 0.0000\n",
      "Epoch: 5770/20000, Loss: 0.0000\n",
      "Epoch: 5780/20000, Loss: 0.0000\n",
      "Epoch: 5790/20000, Loss: 0.0000\n",
      "Epoch: 5800/20000, Loss: 0.0000\n",
      "Epoch: 5810/20000, Loss: 0.0000\n",
      "Epoch: 5820/20000, Loss: 0.0000\n",
      "Epoch: 5830/20000, Loss: 0.0000\n",
      "Epoch: 5840/20000, Loss: 0.0000\n",
      "Epoch: 5850/20000, Loss: 0.0000\n",
      "Epoch: 5860/20000, Loss: 0.0000\n",
      "Epoch: 5870/20000, Loss: 0.0000\n",
      "Epoch: 5880/20000, Loss: 0.0000\n",
      "Epoch: 5890/20000, Loss: 0.0000\n",
      "Epoch: 5900/20000, Loss: 0.0000\n",
      "Epoch: 5910/20000, Loss: 0.0000\n",
      "Epoch: 5920/20000, Loss: 0.0000\n",
      "Epoch: 5930/20000, Loss: 0.0000\n",
      "Epoch: 5940/20000, Loss: 0.0000\n",
      "Epoch: 5950/20000, Loss: 0.0000\n",
      "Epoch: 5960/20000, Loss: 0.0000\n",
      "Epoch: 5970/20000, Loss: 0.0000\n",
      "Epoch: 5980/20000, Loss: 0.0000\n",
      "Epoch: 5990/20000, Loss: 0.0000\n",
      "Epoch: 6000/20000, Loss: 0.0000\n",
      "Epoch: 6010/20000, Loss: 0.0001\n",
      "Epoch: 6020/20000, Loss: 0.0000\n",
      "Epoch: 6030/20000, Loss: 0.0000\n",
      "Epoch: 6040/20000, Loss: 0.0000\n",
      "Epoch: 6050/20000, Loss: 0.0000\n",
      "Epoch: 6060/20000, Loss: 0.0000\n",
      "Epoch: 6070/20000, Loss: 0.0000\n",
      "Epoch: 6080/20000, Loss: 0.0000\n",
      "Epoch: 6090/20000, Loss: 0.0000\n",
      "Epoch: 6100/20000, Loss: 0.0000\n",
      "Epoch: 6110/20000, Loss: 0.0001\n",
      "Epoch: 6120/20000, Loss: 0.0000\n",
      "Epoch: 6130/20000, Loss: 0.0000\n",
      "Epoch: 6140/20000, Loss: 0.0000\n",
      "Epoch: 6150/20000, Loss: 0.0000\n",
      "Epoch: 6160/20000, Loss: 0.0000\n",
      "Epoch: 6170/20000, Loss: 0.0000\n",
      "Epoch: 6180/20000, Loss: 0.0000\n",
      "Epoch: 6190/20000, Loss: 0.0000\n",
      "Epoch: 6200/20000, Loss: 0.0000\n",
      "Epoch: 6210/20000, Loss: 0.0000\n",
      "Epoch: 6220/20000, Loss: 0.0000\n",
      "Epoch: 6230/20000, Loss: 0.0000\n",
      "Epoch: 6240/20000, Loss: 0.0000\n",
      "Epoch: 6250/20000, Loss: 0.0000\n",
      "Epoch: 6260/20000, Loss: 0.0000\n",
      "Epoch: 6270/20000, Loss: 0.0000\n",
      "Epoch: 6280/20000, Loss: 0.0000\n",
      "Epoch: 6290/20000, Loss: 0.0000\n",
      "Epoch: 6300/20000, Loss: 0.0000\n",
      "Epoch: 6310/20000, Loss: 0.0000\n",
      "Epoch: 6320/20000, Loss: 0.0000\n",
      "Epoch: 6330/20000, Loss: 0.0001\n",
      "Epoch: 6340/20000, Loss: 0.0000\n",
      "Epoch: 6350/20000, Loss: 0.0000\n",
      "Epoch: 6360/20000, Loss: 0.0000\n",
      "Epoch: 6370/20000, Loss: 0.0000\n",
      "Epoch: 6380/20000, Loss: 0.0000\n",
      "Epoch: 6390/20000, Loss: 0.0000\n",
      "Epoch: 6400/20000, Loss: 0.0000\n",
      "Epoch: 6410/20000, Loss: 0.0000\n",
      "Epoch: 6420/20000, Loss: 0.0000\n",
      "Epoch: 6430/20000, Loss: 0.0000\n",
      "Epoch: 6440/20000, Loss: 0.0000\n",
      "Epoch: 6450/20000, Loss: 0.0000\n",
      "Epoch: 6460/20000, Loss: 0.0001\n",
      "Epoch: 6470/20000, Loss: 0.0000\n",
      "Epoch: 6480/20000, Loss: 0.0000\n",
      "Epoch: 6490/20000, Loss: 0.0000\n",
      "Epoch: 6500/20000, Loss: 0.0000\n",
      "Epoch: 6510/20000, Loss: 0.0000\n",
      "Epoch: 6520/20000, Loss: 0.0000\n",
      "Epoch: 6530/20000, Loss: 0.0000\n",
      "Epoch: 6540/20000, Loss: 0.0000\n",
      "Epoch: 6550/20000, Loss: 0.0000\n",
      "Epoch: 6560/20000, Loss: 0.0000\n",
      "Epoch: 6570/20000, Loss: 0.0000\n",
      "Epoch: 6580/20000, Loss: 0.0000\n",
      "Epoch: 6590/20000, Loss: 0.0000\n",
      "Epoch: 6600/20000, Loss: 0.0000\n",
      "Epoch: 6610/20000, Loss: 0.0001\n",
      "Epoch: 6620/20000, Loss: 0.0000\n",
      "Epoch: 6630/20000, Loss: 0.0000\n",
      "Epoch: 6640/20000, Loss: 0.0000\n",
      "Epoch: 6650/20000, Loss: 0.0000\n",
      "Epoch: 6660/20000, Loss: 0.0000\n",
      "Epoch: 6670/20000, Loss: 0.0000\n",
      "Epoch: 6680/20000, Loss: 0.0000\n",
      "Epoch: 6690/20000, Loss: 0.0000\n",
      "Epoch: 6700/20000, Loss: 0.0000\n",
      "Epoch: 6710/20000, Loss: 0.0000\n",
      "Epoch: 6720/20000, Loss: 0.0000\n",
      "Epoch: 6730/20000, Loss: 0.0000\n",
      "Epoch: 6740/20000, Loss: 0.0001\n",
      "Epoch: 6750/20000, Loss: 0.0000\n",
      "Epoch: 6760/20000, Loss: 0.0000\n",
      "Epoch: 6770/20000, Loss: 0.0000\n",
      "Epoch: 6780/20000, Loss: 0.0000\n",
      "Epoch: 6790/20000, Loss: 0.0000\n",
      "Epoch: 6800/20000, Loss: 0.0000\n",
      "Epoch: 6810/20000, Loss: 0.0000\n",
      "Epoch: 6820/20000, Loss: 0.0000\n",
      "Epoch: 6830/20000, Loss: 0.0000\n",
      "Epoch: 6840/20000, Loss: 0.0000\n",
      "Epoch: 6850/20000, Loss: 0.0000\n",
      "Epoch: 6860/20000, Loss: 0.0000\n",
      "Epoch: 6870/20000, Loss: 0.0000\n",
      "Epoch: 6880/20000, Loss: 0.0000\n",
      "Epoch: 6890/20000, Loss: 0.0000\n",
      "Epoch: 6900/20000, Loss: 0.0000\n",
      "Epoch: 6910/20000, Loss: 0.0000\n",
      "Epoch: 6920/20000, Loss: 0.0000\n",
      "Epoch: 6930/20000, Loss: 0.0000\n",
      "Epoch: 6940/20000, Loss: 0.0001\n",
      "Epoch: 6950/20000, Loss: 0.0000\n",
      "Epoch: 6960/20000, Loss: 0.0000\n",
      "Epoch: 6970/20000, Loss: 0.0000\n",
      "Epoch: 6980/20000, Loss: 0.0000\n",
      "Epoch: 6990/20000, Loss: 0.0000\n",
      "Epoch: 7000/20000, Loss: 0.0000\n",
      "Epoch: 7010/20000, Loss: 0.0000\n",
      "Epoch: 7020/20000, Loss: 0.0000\n",
      "Epoch: 7030/20000, Loss: 0.0000\n",
      "Epoch: 7040/20000, Loss: 0.0000\n",
      "Epoch: 7050/20000, Loss: 0.0000\n",
      "Epoch: 7060/20000, Loss: 0.0000\n",
      "Epoch: 7070/20000, Loss: 0.0000\n",
      "Epoch: 7080/20000, Loss: 0.0000\n",
      "Epoch: 7090/20000, Loss: 0.0000\n",
      "Epoch: 7100/20000, Loss: 0.0000\n",
      "Epoch: 7110/20000, Loss: 0.0000\n",
      "Epoch: 7120/20000, Loss: 0.0000\n",
      "Epoch: 7130/20000, Loss: 0.0000\n",
      "Epoch: 7140/20000, Loss: 0.0000\n",
      "Epoch: 7150/20000, Loss: 0.0000\n",
      "Epoch: 7160/20000, Loss: 0.0000\n",
      "Epoch: 7170/20000, Loss: 0.0000\n",
      "Epoch: 7180/20000, Loss: 0.0001\n",
      "Epoch: 7190/20000, Loss: 0.0000\n",
      "Epoch: 7200/20000, Loss: 0.0002\n",
      "Epoch: 7210/20000, Loss: 0.0000\n",
      "Epoch: 7220/20000, Loss: 0.0000\n",
      "Epoch: 7230/20000, Loss: 0.0000\n",
      "Epoch: 7240/20000, Loss: 0.0000\n",
      "Epoch: 7250/20000, Loss: 0.0000\n",
      "Epoch: 7260/20000, Loss: 0.0000\n",
      "Epoch: 7270/20000, Loss: 0.0000\n",
      "Epoch: 7280/20000, Loss: 0.0000\n",
      "Epoch: 7290/20000, Loss: 0.0000\n",
      "Epoch: 7300/20000, Loss: 0.0000\n",
      "Epoch: 7310/20000, Loss: 0.0000\n",
      "Epoch: 7320/20000, Loss: 0.0000\n",
      "Epoch: 7330/20000, Loss: 0.0000\n",
      "Epoch: 7340/20000, Loss: 0.0000\n",
      "Epoch: 7350/20000, Loss: 0.0000\n",
      "Epoch: 7360/20000, Loss: 0.0000\n",
      "Epoch: 7370/20000, Loss: 0.0000\n",
      "Epoch: 7380/20000, Loss: 0.0000\n",
      "Epoch: 7390/20000, Loss: 0.0001\n",
      "Epoch: 7400/20000, Loss: 0.0001\n",
      "Epoch: 7410/20000, Loss: 0.0000\n",
      "Epoch: 7420/20000, Loss: 0.0000\n",
      "Epoch: 7430/20000, Loss: 0.0000\n",
      "Epoch: 7440/20000, Loss: 0.0000\n",
      "Epoch: 7450/20000, Loss: 0.0000\n",
      "Epoch: 7460/20000, Loss: 0.0000\n",
      "Epoch: 7470/20000, Loss: 0.0000\n",
      "Epoch: 7480/20000, Loss: 0.0000\n",
      "Epoch: 7490/20000, Loss: 0.0000\n",
      "Epoch: 7500/20000, Loss: 0.0000\n",
      "Epoch: 7510/20000, Loss: 0.0000\n",
      "Epoch: 7520/20000, Loss: 0.0000\n",
      "Epoch: 7530/20000, Loss: 0.0000\n",
      "Epoch: 7540/20000, Loss: 0.0000\n",
      "Epoch: 7550/20000, Loss: 0.0000\n",
      "Epoch: 7560/20000, Loss: 0.0000\n",
      "Epoch: 7570/20000, Loss: 0.0000\n",
      "Epoch: 7580/20000, Loss: 0.0000\n",
      "Epoch: 7590/20000, Loss: 0.0000\n",
      "Epoch: 7600/20000, Loss: 0.0001\n",
      "Epoch: 7610/20000, Loss: 0.0000\n",
      "Epoch: 7620/20000, Loss: 0.0000\n",
      "Epoch: 7630/20000, Loss: 0.0000\n",
      "Epoch: 7640/20000, Loss: 0.0000\n",
      "Epoch: 7650/20000, Loss: 0.0000\n",
      "Epoch: 7660/20000, Loss: 0.0000\n",
      "Epoch: 7670/20000, Loss: 0.0000\n",
      "Epoch: 7680/20000, Loss: 0.0000\n",
      "Epoch: 7690/20000, Loss: 0.0000\n",
      "Epoch: 7700/20000, Loss: 0.0000\n",
      "Epoch: 7710/20000, Loss: 0.0000\n",
      "Epoch: 7720/20000, Loss: 0.0000\n",
      "Epoch: 7730/20000, Loss: 0.0000\n",
      "Epoch: 7740/20000, Loss: 0.0000\n",
      "Epoch: 7750/20000, Loss: 0.0000\n",
      "Epoch: 7760/20000, Loss: 0.0000\n",
      "Epoch: 7770/20000, Loss: 0.0000\n",
      "Epoch: 7780/20000, Loss: 0.0000\n",
      "Epoch: 7790/20000, Loss: 0.0000\n",
      "Epoch: 7800/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 7810/20000, Loss: 0.0000\n",
      "Epoch: 7820/20000, Loss: 0.0000\n",
      "Epoch: 7830/20000, Loss: 0.0000\n",
      "Epoch: 7840/20000, Loss: 0.0000\n",
      "Epoch: 7850/20000, Loss: 0.0000\n",
      "Epoch: 7860/20000, Loss: 0.0001\n",
      "Epoch: 7870/20000, Loss: 0.0000\n",
      "Epoch: 7880/20000, Loss: 0.0000\n",
      "Epoch: 7890/20000, Loss: 0.0000\n",
      "Epoch: 7900/20000, Loss: 0.0000\n",
      "Epoch: 7910/20000, Loss: 0.0000\n",
      "Epoch: 7920/20000, Loss: 0.0000\n",
      "Epoch: 7930/20000, Loss: 0.0000\n",
      "Epoch: 7940/20000, Loss: 0.0000\n",
      "Epoch: 7950/20000, Loss: 0.0000\n",
      "Epoch: 7960/20000, Loss: 0.0000\n",
      "Epoch: 7970/20000, Loss: 0.0000\n",
      "Epoch: 7980/20000, Loss: 0.0000\n",
      "Epoch: 7990/20000, Loss: 0.0000\n",
      "Epoch: 8000/20000, Loss: 0.0000\n",
      "Epoch: 8010/20000, Loss: 0.0000\n",
      "Epoch: 8020/20000, Loss: 0.0000\n",
      "Epoch: 8030/20000, Loss: 0.0000\n",
      "Epoch: 8040/20000, Loss: 0.0000\n",
      "Epoch: 8050/20000, Loss: 0.0000\n",
      "Epoch: 8060/20000, Loss: 0.0000\n",
      "Epoch: 8070/20000, Loss: 0.0000\n",
      "Epoch: 8080/20000, Loss: 0.0000\n",
      "Epoch: 8090/20000, Loss: 0.0000\n",
      "Epoch: 8100/20000, Loss: 0.0000\n",
      "Epoch: 8110/20000, Loss: 0.0000\n",
      "Epoch: 8120/20000, Loss: 0.0000\n",
      "Epoch: 8130/20000, Loss: 0.0000\n",
      "Epoch: 8140/20000, Loss: 0.0000\n",
      "Epoch: 8150/20000, Loss: 0.0000\n",
      "Epoch: 8160/20000, Loss: 0.0000\n",
      "Epoch: 8170/20000, Loss: 0.0000\n",
      "Epoch: 8180/20000, Loss: 0.0000\n",
      "Epoch: 8190/20000, Loss: 0.0000\n",
      "Epoch: 8200/20000, Loss: 0.0000\n",
      "Epoch: 8210/20000, Loss: 0.0000\n",
      "Epoch: 8220/20000, Loss: 0.0000\n",
      "Epoch: 8230/20000, Loss: 0.0000\n",
      "Epoch: 8240/20000, Loss: 0.0000\n",
      "Epoch: 8250/20000, Loss: 0.0000\n",
      "Epoch: 8260/20000, Loss: 0.0001\n",
      "Epoch: 8270/20000, Loss: 0.0000\n",
      "Epoch: 8280/20000, Loss: 0.0000\n",
      "Epoch: 8290/20000, Loss: 0.0000\n",
      "Epoch: 8300/20000, Loss: 0.0000\n",
      "Epoch: 8310/20000, Loss: 0.0000\n",
      "Epoch: 8320/20000, Loss: 0.0000\n",
      "Epoch: 8330/20000, Loss: 0.0000\n",
      "Epoch: 8340/20000, Loss: 0.0000\n",
      "Epoch: 8350/20000, Loss: 0.0000\n",
      "Epoch: 8360/20000, Loss: 0.0000\n",
      "Epoch: 8370/20000, Loss: 0.0000\n",
      "Epoch: 8380/20000, Loss: 0.0000\n",
      "Epoch: 8390/20000, Loss: 0.0000\n",
      "Epoch: 8400/20000, Loss: 0.0000\n",
      "Epoch: 8410/20000, Loss: 0.0000\n",
      "Epoch: 8420/20000, Loss: 0.0000\n",
      "Epoch: 8430/20000, Loss: 0.0000\n",
      "Epoch: 8440/20000, Loss: 0.0000\n",
      "Epoch: 8450/20000, Loss: 0.0000\n",
      "Epoch: 8460/20000, Loss: 0.0000\n",
      "Epoch: 8470/20000, Loss: 0.0000\n",
      "Epoch: 8480/20000, Loss: 0.0000\n",
      "Epoch: 8490/20000, Loss: 0.0000\n",
      "Epoch: 8500/20000, Loss: 0.0000\n",
      "Epoch: 8510/20000, Loss: 0.0000\n",
      "Epoch: 8520/20000, Loss: 0.0000\n",
      "Epoch: 8530/20000, Loss: 0.0000\n",
      "Epoch: 8540/20000, Loss: 0.0000\n",
      "Epoch: 8550/20000, Loss: 0.0000\n",
      "Epoch: 8560/20000, Loss: 0.0000\n",
      "Epoch: 8570/20000, Loss: 0.0000\n",
      "Epoch: 8580/20000, Loss: 0.0000\n",
      "Epoch: 8590/20000, Loss: 0.0000\n",
      "Epoch: 8600/20000, Loss: 0.0000\n",
      "Epoch: 8610/20000, Loss: 0.0001\n",
      "Epoch: 8620/20000, Loss: 0.0000\n",
      "Epoch: 8630/20000, Loss: 0.0000\n",
      "Epoch: 8640/20000, Loss: 0.0000\n",
      "Epoch: 8650/20000, Loss: 0.0000\n",
      "Epoch: 8660/20000, Loss: 0.0000\n",
      "Epoch: 8670/20000, Loss: 0.0000\n",
      "Epoch: 8680/20000, Loss: 0.0000\n",
      "Epoch: 8690/20000, Loss: 0.0000\n",
      "Epoch: 8700/20000, Loss: 0.0000\n",
      "Epoch: 8710/20000, Loss: 0.0000\n",
      "Epoch: 8720/20000, Loss: 0.0000\n",
      "Epoch: 8730/20000, Loss: 0.0000\n",
      "Epoch: 8740/20000, Loss: 0.0000\n",
      "Epoch: 8750/20000, Loss: 0.0000\n",
      "Epoch: 8760/20000, Loss: 0.0000\n",
      "Epoch: 8770/20000, Loss: 0.0000\n",
      "Epoch: 8780/20000, Loss: 0.0000\n",
      "Epoch: 8790/20000, Loss: 0.0000\n",
      "Epoch: 8800/20000, Loss: 0.0000\n",
      "Epoch: 8810/20000, Loss: 0.0000\n",
      "Epoch: 8820/20000, Loss: 0.0001\n",
      "Epoch: 8830/20000, Loss: 0.0000\n",
      "Epoch: 8840/20000, Loss: 0.0000\n",
      "Epoch: 8850/20000, Loss: 0.0000\n",
      "Epoch: 8860/20000, Loss: 0.0000\n",
      "Epoch: 8870/20000, Loss: 0.0000\n",
      "Epoch: 8880/20000, Loss: 0.0000\n",
      "Epoch: 8890/20000, Loss: 0.0000\n",
      "Epoch: 8900/20000, Loss: 0.0000\n",
      "Epoch: 8910/20000, Loss: 0.0000\n",
      "Epoch: 8920/20000, Loss: 0.0000\n",
      "Epoch: 8930/20000, Loss: 0.0000\n",
      "Epoch: 8940/20000, Loss: 0.0000\n",
      "Epoch: 8950/20000, Loss: 0.0000\n",
      "Epoch: 8960/20000, Loss: 0.0000\n",
      "Epoch: 8970/20000, Loss: 0.0000\n",
      "Epoch: 8980/20000, Loss: 0.0000\n",
      "Epoch: 8990/20000, Loss: 0.0000\n",
      "Epoch: 9000/20000, Loss: 0.0000\n",
      "Epoch: 9010/20000, Loss: 0.0000\n",
      "Epoch: 9020/20000, Loss: 0.0000\n",
      "Epoch: 9030/20000, Loss: 0.0001\n",
      "Epoch: 9040/20000, Loss: 0.0000\n",
      "Epoch: 9050/20000, Loss: 0.0000\n",
      "Epoch: 9060/20000, Loss: 0.0000\n",
      "Epoch: 9070/20000, Loss: 0.0000\n",
      "Epoch: 9080/20000, Loss: 0.0000\n",
      "Epoch: 9090/20000, Loss: 0.0000\n",
      "Epoch: 9100/20000, Loss: 0.0000\n",
      "Epoch: 9110/20000, Loss: 0.0000\n",
      "Epoch: 9120/20000, Loss: 0.0000\n",
      "Epoch: 9130/20000, Loss: 0.0000\n",
      "Epoch: 9140/20000, Loss: 0.0000\n",
      "Epoch: 9150/20000, Loss: 0.0000\n",
      "Epoch: 9160/20000, Loss: 0.0000\n",
      "Epoch: 9170/20000, Loss: 0.0000\n",
      "Epoch: 9180/20000, Loss: 0.0000\n",
      "Epoch: 9190/20000, Loss: 0.0000\n",
      "Epoch: 9200/20000, Loss: 0.0000\n",
      "Epoch: 9210/20000, Loss: 0.0000\n",
      "Epoch: 9220/20000, Loss: 0.0001\n",
      "Epoch: 9230/20000, Loss: 0.0000\n",
      "Epoch: 9240/20000, Loss: 0.0000\n",
      "Epoch: 9250/20000, Loss: 0.0000\n",
      "Epoch: 9260/20000, Loss: 0.0000\n",
      "Epoch: 9270/20000, Loss: 0.0000\n",
      "Epoch: 9280/20000, Loss: 0.0000\n",
      "Epoch: 9290/20000, Loss: 0.0000\n",
      "Epoch: 9300/20000, Loss: 0.0000\n",
      "Epoch: 9310/20000, Loss: 0.0000\n",
      "Epoch: 9320/20000, Loss: 0.0000\n",
      "Epoch: 9330/20000, Loss: 0.0000\n",
      "Epoch: 9340/20000, Loss: 0.0000\n",
      "Epoch: 9350/20000, Loss: 0.0000\n",
      "Epoch: 9360/20000, Loss: 0.0000\n",
      "Epoch: 9370/20000, Loss: 0.0000\n",
      "Epoch: 9380/20000, Loss: 0.0000\n",
      "Epoch: 9390/20000, Loss: 0.0001\n",
      "Epoch: 9400/20000, Loss: 0.0000\n",
      "Epoch: 9410/20000, Loss: 0.0000\n",
      "Epoch: 9420/20000, Loss: 0.0000\n",
      "Epoch: 9430/20000, Loss: 0.0000\n",
      "Epoch: 9440/20000, Loss: 0.0000\n",
      "Epoch: 9450/20000, Loss: 0.0000\n",
      "Epoch: 9460/20000, Loss: 0.0000\n",
      "Epoch: 9470/20000, Loss: 0.0000\n",
      "Epoch: 9480/20000, Loss: 0.0000\n",
      "Epoch: 9490/20000, Loss: 0.0000\n",
      "Epoch: 9500/20000, Loss: 0.0000\n",
      "Epoch: 9510/20000, Loss: 0.0000\n",
      "Epoch: 9520/20000, Loss: 0.0000\n",
      "Epoch: 9530/20000, Loss: 0.0001\n",
      "Epoch: 9540/20000, Loss: 0.0000\n",
      "Epoch: 9550/20000, Loss: 0.0000\n",
      "Epoch: 9560/20000, Loss: 0.0000\n",
      "Epoch: 9570/20000, Loss: 0.0000\n",
      "Epoch: 9580/20000, Loss: 0.0000\n",
      "Epoch: 9590/20000, Loss: 0.0000\n",
      "Epoch: 9600/20000, Loss: 0.0000\n",
      "Epoch: 9610/20000, Loss: 0.0000\n",
      "Epoch: 9620/20000, Loss: 0.0000\n",
      "Epoch: 9630/20000, Loss: 0.0000\n",
      "Epoch: 9640/20000, Loss: 0.0000\n",
      "Epoch: 9650/20000, Loss: 0.0000\n",
      "Epoch: 9660/20000, Loss: 0.0000\n",
      "Epoch: 9670/20000, Loss: 0.0000\n",
      "Epoch: 9680/20000, Loss: 0.0000\n",
      "Epoch: 9690/20000, Loss: 0.0001\n",
      "Epoch: 9700/20000, Loss: 0.0000\n",
      "Epoch: 9710/20000, Loss: 0.0000\n",
      "Epoch: 9720/20000, Loss: 0.0000\n",
      "Epoch: 9730/20000, Loss: 0.0000\n",
      "Epoch: 9740/20000, Loss: 0.0000\n",
      "Epoch: 9750/20000, Loss: 0.0000\n",
      "Epoch: 9760/20000, Loss: 0.0000\n",
      "Epoch: 9770/20000, Loss: 0.0000\n",
      "Epoch: 9780/20000, Loss: 0.0000\n",
      "Epoch: 9790/20000, Loss: 0.0000\n",
      "Epoch: 9800/20000, Loss: 0.0000\n",
      "Epoch: 9810/20000, Loss: 0.0000\n",
      "Epoch: 9820/20000, Loss: 0.0000\n",
      "Epoch: 9830/20000, Loss: 0.0000\n",
      "Epoch: 9840/20000, Loss: 0.0000\n",
      "Epoch: 9850/20000, Loss: 0.0000\n",
      "Epoch: 9860/20000, Loss: 0.0000\n",
      "Epoch: 9870/20000, Loss: 0.0000\n",
      "Epoch: 9880/20000, Loss: 0.0000\n",
      "Epoch: 9890/20000, Loss: 0.0000\n",
      "Epoch: 9900/20000, Loss: 0.0000\n",
      "Epoch: 9910/20000, Loss: 0.0000\n",
      "Epoch: 9920/20000, Loss: 0.0000\n",
      "Epoch: 9930/20000, Loss: 0.0000\n",
      "Epoch: 9940/20000, Loss: 0.0000\n",
      "Epoch: 9950/20000, Loss: 0.0000\n",
      "Epoch: 9960/20000, Loss: 0.0000\n",
      "Epoch: 9970/20000, Loss: 0.0000\n",
      "Epoch: 9980/20000, Loss: 0.0000\n",
      "Epoch: 9990/20000, Loss: 0.0000\n",
      "Epoch: 10000/20000, Loss: 0.0000\n",
      "Epoch: 10010/20000, Loss: 0.0000\n",
      "Epoch: 10020/20000, Loss: 0.0000\n",
      "Epoch: 10030/20000, Loss: 0.0000\n",
      "Epoch: 10040/20000, Loss: 0.0000\n",
      "Epoch: 10050/20000, Loss: 0.0000\n",
      "Epoch: 10060/20000, Loss: 0.0000\n",
      "Epoch: 10070/20000, Loss: 0.0000\n",
      "Epoch: 10080/20000, Loss: 0.0000\n",
      "Epoch: 10090/20000, Loss: 0.0000\n",
      "Epoch: 10100/20000, Loss: 0.0000\n",
      "Epoch: 10110/20000, Loss: 0.0000\n",
      "Epoch: 10120/20000, Loss: 0.0000\n",
      "Epoch: 10130/20000, Loss: 0.0000\n",
      "Epoch: 10140/20000, Loss: 0.0000\n",
      "Epoch: 10150/20000, Loss: 0.0000\n",
      "Epoch: 10160/20000, Loss: 0.0000\n",
      "Epoch: 10170/20000, Loss: 0.0000\n",
      "Epoch: 10180/20000, Loss: 0.0000\n",
      "Epoch: 10190/20000, Loss: 0.0000\n",
      "Epoch: 10200/20000, Loss: 0.0000\n",
      "Epoch: 10210/20000, Loss: 0.0000\n",
      "Epoch: 10220/20000, Loss: 0.0000\n",
      "Epoch: 10230/20000, Loss: 0.0000\n",
      "Epoch: 10240/20000, Loss: 0.0000\n",
      "Epoch: 10250/20000, Loss: 0.0000\n",
      "Epoch: 10260/20000, Loss: 0.0000\n",
      "Epoch: 10270/20000, Loss: 0.0001\n",
      "Epoch: 10280/20000, Loss: 0.0000\n",
      "Epoch: 10290/20000, Loss: 0.0000\n",
      "Epoch: 10300/20000, Loss: 0.0000\n",
      "Epoch: 10310/20000, Loss: 0.0000\n",
      "Epoch: 10320/20000, Loss: 0.0000\n",
      "Epoch: 10330/20000, Loss: 0.0000\n",
      "Epoch: 10340/20000, Loss: 0.0000\n",
      "Epoch: 10350/20000, Loss: 0.0000\n",
      "Epoch: 10360/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10370/20000, Loss: 0.0000\n",
      "Epoch: 10380/20000, Loss: 0.0000\n",
      "Epoch: 10390/20000, Loss: 0.0000\n",
      "Epoch: 10400/20000, Loss: 0.0000\n",
      "Epoch: 10410/20000, Loss: 0.0000\n",
      "Epoch: 10420/20000, Loss: 0.0000\n",
      "Epoch: 10430/20000, Loss: 0.0000\n",
      "Epoch: 10440/20000, Loss: 0.0000\n",
      "Epoch: 10450/20000, Loss: 0.0000\n",
      "Epoch: 10460/20000, Loss: 0.0000\n",
      "Epoch: 10470/20000, Loss: 0.0000\n",
      "Epoch: 10480/20000, Loss: 0.0000\n",
      "Epoch: 10490/20000, Loss: 0.0000\n",
      "Epoch: 10500/20000, Loss: 0.0000\n",
      "Epoch: 10510/20000, Loss: 0.0000\n",
      "Epoch: 10520/20000, Loss: 0.0000\n",
      "Epoch: 10530/20000, Loss: 0.0000\n",
      "Epoch: 10540/20000, Loss: 0.0000\n",
      "Epoch: 10550/20000, Loss: 0.0000\n",
      "Epoch: 10560/20000, Loss: 0.0000\n",
      "Epoch: 10570/20000, Loss: 0.0000\n",
      "Epoch: 10580/20000, Loss: 0.0000\n",
      "Epoch: 10590/20000, Loss: 0.0000\n",
      "Epoch: 10600/20000, Loss: 0.0000\n",
      "Epoch: 10610/20000, Loss: 0.0000\n",
      "Epoch: 10620/20000, Loss: 0.0000\n",
      "Epoch: 10630/20000, Loss: 0.0000\n",
      "Epoch: 10640/20000, Loss: 0.0000\n",
      "Epoch: 10650/20000, Loss: 0.0000\n",
      "Epoch: 10660/20000, Loss: 0.0000\n",
      "Epoch: 10670/20000, Loss: 0.0000\n",
      "Epoch: 10680/20000, Loss: 0.0000\n",
      "Epoch: 10690/20000, Loss: 0.0000\n",
      "Epoch: 10700/20000, Loss: 0.0000\n",
      "Epoch: 10710/20000, Loss: 0.0000\n",
      "Epoch: 10720/20000, Loss: 0.0000\n",
      "Epoch: 10730/20000, Loss: 0.0000\n",
      "Epoch: 10740/20000, Loss: 0.0000\n",
      "Epoch: 10750/20000, Loss: 0.0000\n",
      "Epoch: 10760/20000, Loss: 0.0000\n",
      "Epoch: 10770/20000, Loss: 0.0000\n",
      "Epoch: 10780/20000, Loss: 0.0000\n",
      "Epoch: 10790/20000, Loss: 0.0000\n",
      "Epoch: 10800/20000, Loss: 0.0000\n",
      "Epoch: 10810/20000, Loss: 0.0001\n",
      "Epoch: 10820/20000, Loss: 0.0000\n",
      "Epoch: 10830/20000, Loss: 0.0000\n",
      "Epoch: 10840/20000, Loss: 0.0000\n",
      "Epoch: 10850/20000, Loss: 0.0000\n",
      "Epoch: 10860/20000, Loss: 0.0000\n",
      "Epoch: 10870/20000, Loss: 0.0000\n",
      "Epoch: 10880/20000, Loss: 0.0000\n",
      "Epoch: 10890/20000, Loss: 0.0000\n",
      "Epoch: 10900/20000, Loss: 0.0000\n",
      "Epoch: 10910/20000, Loss: 0.0000\n",
      "Epoch: 10920/20000, Loss: 0.0000\n",
      "Epoch: 10930/20000, Loss: 0.0000\n",
      "Epoch: 10940/20000, Loss: 0.0000\n",
      "Epoch: 10950/20000, Loss: 0.0000\n",
      "Epoch: 10960/20000, Loss: 0.0000\n",
      "Epoch: 10970/20000, Loss: 0.0000\n",
      "Epoch: 10980/20000, Loss: 0.0000\n",
      "Epoch: 10990/20000, Loss: 0.0000\n",
      "Epoch: 11000/20000, Loss: 0.0000\n",
      "Epoch: 11010/20000, Loss: 0.0000\n",
      "Epoch: 11020/20000, Loss: 0.0000\n",
      "Epoch: 11030/20000, Loss: 0.0000\n",
      "Epoch: 11040/20000, Loss: 0.0000\n",
      "Epoch: 11050/20000, Loss: 0.0000\n",
      "Epoch: 11060/20000, Loss: 0.0000\n",
      "Epoch: 11070/20000, Loss: 0.0000\n",
      "Epoch: 11080/20000, Loss: 0.0000\n",
      "Epoch: 11090/20000, Loss: 0.0000\n",
      "Epoch: 11100/20000, Loss: 0.0000\n",
      "Epoch: 11110/20000, Loss: 0.0000\n",
      "Epoch: 11120/20000, Loss: 0.0000\n",
      "Epoch: 11130/20000, Loss: 0.0000\n",
      "Epoch: 11140/20000, Loss: 0.0000\n",
      "Epoch: 11150/20000, Loss: 0.0000\n",
      "Epoch: 11160/20000, Loss: 0.0000\n",
      "Epoch: 11170/20000, Loss: 0.0000\n",
      "Epoch: 11180/20000, Loss: 0.0001\n",
      "Epoch: 11190/20000, Loss: 0.0000\n",
      "Epoch: 11200/20000, Loss: 0.0000\n",
      "Epoch: 11210/20000, Loss: 0.0000\n",
      "Epoch: 11220/20000, Loss: 0.0000\n",
      "Epoch: 11230/20000, Loss: 0.0000\n",
      "Epoch: 11240/20000, Loss: 0.0000\n",
      "Epoch: 11250/20000, Loss: 0.0000\n",
      "Epoch: 11260/20000, Loss: 0.0000\n",
      "Epoch: 11270/20000, Loss: 0.0000\n",
      "Epoch: 11280/20000, Loss: 0.0000\n",
      "Epoch: 11290/20000, Loss: 0.0000\n",
      "Epoch: 11300/20000, Loss: 0.0000\n",
      "Epoch: 11310/20000, Loss: 0.0000\n",
      "Epoch: 11320/20000, Loss: 0.0000\n",
      "Epoch: 11330/20000, Loss: 0.0000\n",
      "Epoch: 11340/20000, Loss: 0.0000\n",
      "Epoch: 11350/20000, Loss: 0.0000\n",
      "Epoch: 11360/20000, Loss: 0.0000\n",
      "Epoch: 11370/20000, Loss: 0.0000\n",
      "Epoch: 11380/20000, Loss: 0.0000\n",
      "Epoch: 11390/20000, Loss: 0.0000\n",
      "Epoch: 11400/20000, Loss: 0.0000\n",
      "Epoch: 11410/20000, Loss: 0.0000\n",
      "Epoch: 11420/20000, Loss: 0.0000\n",
      "Epoch: 11430/20000, Loss: 0.0000\n",
      "Epoch: 11440/20000, Loss: 0.0000\n",
      "Epoch: 11450/20000, Loss: 0.0000\n",
      "Epoch: 11460/20000, Loss: 0.0000\n",
      "Epoch: 11470/20000, Loss: 0.0000\n",
      "Epoch: 11480/20000, Loss: 0.0000\n",
      "Epoch: 11490/20000, Loss: 0.0000\n",
      "Epoch: 11500/20000, Loss: 0.0000\n",
      "Epoch: 11510/20000, Loss: 0.0000\n",
      "Epoch: 11520/20000, Loss: 0.0000\n",
      "Epoch: 11530/20000, Loss: 0.0000\n",
      "Epoch: 11540/20000, Loss: 0.0000\n",
      "Epoch: 11550/20000, Loss: 0.0000\n",
      "Epoch: 11560/20000, Loss: 0.0000\n",
      "Epoch: 11570/20000, Loss: 0.0000\n",
      "Epoch: 11580/20000, Loss: 0.0000\n",
      "Epoch: 11590/20000, Loss: 0.0000\n",
      "Epoch: 11600/20000, Loss: 0.0000\n",
      "Epoch: 11610/20000, Loss: 0.0000\n",
      "Epoch: 11620/20000, Loss: 0.0000\n",
      "Epoch: 11630/20000, Loss: 0.0000\n",
      "Epoch: 11640/20000, Loss: 0.0000\n",
      "Epoch: 11650/20000, Loss: 0.0000\n",
      "Epoch: 11660/20000, Loss: 0.0000\n",
      "Epoch: 11670/20000, Loss: 0.0000\n",
      "Epoch: 11680/20000, Loss: 0.0000\n",
      "Epoch: 11690/20000, Loss: 0.0000\n",
      "Epoch: 11700/20000, Loss: 0.0000\n",
      "Epoch: 11710/20000, Loss: 0.0000\n",
      "Epoch: 11720/20000, Loss: 0.0000\n",
      "Epoch: 11730/20000, Loss: 0.0000\n",
      "Epoch: 11740/20000, Loss: 0.0000\n",
      "Epoch: 11750/20000, Loss: 0.0000\n",
      "Epoch: 11760/20000, Loss: 0.0000\n",
      "Epoch: 11770/20000, Loss: 0.0000\n",
      "Epoch: 11780/20000, Loss: 0.0000\n",
      "Epoch: 11790/20000, Loss: 0.0000\n",
      "Epoch: 11800/20000, Loss: 0.0000\n",
      "Epoch: 11810/20000, Loss: 0.0000\n",
      "Epoch: 11820/20000, Loss: 0.0000\n",
      "Epoch: 11830/20000, Loss: 0.0000\n",
      "Epoch: 11840/20000, Loss: 0.0000\n",
      "Epoch: 11850/20000, Loss: 0.0000\n",
      "Epoch: 11860/20000, Loss: 0.0000\n",
      "Epoch: 11870/20000, Loss: 0.0000\n",
      "Epoch: 11880/20000, Loss: 0.0000\n",
      "Epoch: 11890/20000, Loss: 0.0000\n",
      "Epoch: 11900/20000, Loss: 0.0000\n",
      "Epoch: 11910/20000, Loss: 0.0000\n",
      "Epoch: 11920/20000, Loss: 0.0000\n",
      "Epoch: 11930/20000, Loss: 0.0000\n",
      "Epoch: 11940/20000, Loss: 0.0000\n",
      "Epoch: 11950/20000, Loss: 0.0000\n",
      "Epoch: 11960/20000, Loss: 0.0000\n",
      "Epoch: 11970/20000, Loss: 0.0000\n",
      "Epoch: 11980/20000, Loss: 0.0000\n",
      "Epoch: 11990/20000, Loss: 0.0000\n",
      "Epoch: 12000/20000, Loss: 0.0000\n",
      "Epoch: 12010/20000, Loss: 0.0000\n",
      "Epoch: 12020/20000, Loss: 0.0000\n",
      "Epoch: 12030/20000, Loss: 0.0000\n",
      "Epoch: 12040/20000, Loss: 0.0000\n",
      "Epoch: 12050/20000, Loss: 0.0000\n",
      "Epoch: 12060/20000, Loss: 0.0000\n",
      "Epoch: 12070/20000, Loss: 0.0000\n",
      "Epoch: 12080/20000, Loss: 0.0000\n",
      "Epoch: 12090/20000, Loss: 0.0000\n",
      "Epoch: 12100/20000, Loss: 0.0000\n",
      "Epoch: 12110/20000, Loss: 0.0000\n",
      "Epoch: 12120/20000, Loss: 0.0000\n",
      "Epoch: 12130/20000, Loss: 0.0000\n",
      "Epoch: 12140/20000, Loss: 0.0000\n",
      "Epoch: 12150/20000, Loss: 0.0000\n",
      "Epoch: 12160/20000, Loss: 0.0000\n",
      "Epoch: 12170/20000, Loss: 0.0000\n",
      "Epoch: 12180/20000, Loss: 0.0000\n",
      "Epoch: 12190/20000, Loss: 0.0000\n",
      "Epoch: 12200/20000, Loss: 0.0000\n",
      "Epoch: 12210/20000, Loss: 0.0000\n",
      "Epoch: 12220/20000, Loss: 0.0000\n",
      "Epoch: 12230/20000, Loss: 0.0000\n",
      "Epoch: 12240/20000, Loss: 0.0000\n",
      "Epoch: 12250/20000, Loss: 0.0000\n",
      "Epoch: 12260/20000, Loss: 0.0000\n",
      "Epoch: 12270/20000, Loss: 0.0000\n",
      "Epoch: 12280/20000, Loss: 0.0000\n",
      "Epoch: 12290/20000, Loss: 0.0000\n",
      "Epoch: 12300/20000, Loss: 0.0000\n",
      "Epoch: 12310/20000, Loss: 0.0000\n",
      "Epoch: 12320/20000, Loss: 0.0000\n",
      "Epoch: 12330/20000, Loss: 0.0000\n",
      "Epoch: 12340/20000, Loss: 0.0000\n",
      "Epoch: 12350/20000, Loss: 0.0000\n",
      "Epoch: 12360/20000, Loss: 0.0000\n",
      "Epoch: 12370/20000, Loss: 0.0000\n",
      "Epoch: 12380/20000, Loss: 0.0000\n",
      "Epoch: 12390/20000, Loss: 0.0000\n",
      "Epoch: 12400/20000, Loss: 0.0000\n",
      "Epoch: 12410/20000, Loss: 0.0000\n",
      "Epoch: 12420/20000, Loss: 0.0000\n",
      "Epoch: 12430/20000, Loss: 0.0000\n",
      "Epoch: 12440/20000, Loss: 0.0000\n",
      "Epoch: 12450/20000, Loss: 0.0000\n",
      "Epoch: 12460/20000, Loss: 0.0000\n",
      "Epoch: 12470/20000, Loss: 0.0000\n",
      "Epoch: 12480/20000, Loss: 0.0000\n",
      "Epoch: 12490/20000, Loss: 0.0000\n",
      "Epoch: 12500/20000, Loss: 0.0000\n",
      "Epoch: 12510/20000, Loss: 0.0000\n",
      "Epoch: 12520/20000, Loss: 0.0000\n",
      "Epoch: 12530/20000, Loss: 0.0000\n",
      "Epoch: 12540/20000, Loss: 0.0000\n",
      "Epoch: 12550/20000, Loss: 0.0000\n",
      "Epoch: 12560/20000, Loss: 0.0000\n",
      "Epoch: 12570/20000, Loss: 0.0000\n",
      "Epoch: 12580/20000, Loss: 0.0000\n",
      "Epoch: 12590/20000, Loss: 0.0000\n",
      "Epoch: 12600/20000, Loss: 0.0000\n",
      "Epoch: 12610/20000, Loss: 0.0000\n",
      "Epoch: 12620/20000, Loss: 0.0000\n",
      "Epoch: 12630/20000, Loss: 0.0000\n",
      "Epoch: 12640/20000, Loss: 0.0000\n",
      "Epoch: 12650/20000, Loss: 0.0000\n",
      "Epoch: 12660/20000, Loss: 0.0000\n",
      "Epoch: 12670/20000, Loss: 0.0000\n",
      "Epoch: 12680/20000, Loss: 0.0000\n",
      "Epoch: 12690/20000, Loss: 0.0000\n",
      "Epoch: 12700/20000, Loss: 0.0000\n",
      "Epoch: 12710/20000, Loss: 0.0000\n",
      "Epoch: 12720/20000, Loss: 0.0000\n",
      "Epoch: 12730/20000, Loss: 0.0000\n",
      "Epoch: 12740/20000, Loss: 0.0000\n",
      "Epoch: 12750/20000, Loss: 0.0000\n",
      "Epoch: 12760/20000, Loss: 0.0000\n",
      "Epoch: 12770/20000, Loss: 0.0000\n",
      "Epoch: 12780/20000, Loss: 0.0000\n",
      "Epoch: 12790/20000, Loss: 0.0000\n",
      "Epoch: 12800/20000, Loss: 0.0000\n",
      "Epoch: 12810/20000, Loss: 0.0000\n",
      "Epoch: 12820/20000, Loss: 0.0000\n",
      "Epoch: 12830/20000, Loss: 0.0000\n",
      "Epoch: 12840/20000, Loss: 0.0000\n",
      "Epoch: 12850/20000, Loss: 0.0000\n",
      "Epoch: 12860/20000, Loss: 0.0000\n",
      "Epoch: 12870/20000, Loss: 0.0000\n",
      "Epoch: 12880/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 12890/20000, Loss: 0.0000\n",
      "Epoch: 12900/20000, Loss: 0.0000\n",
      "Epoch: 12910/20000, Loss: 0.0000\n",
      "Epoch: 12920/20000, Loss: 0.0000\n",
      "Epoch: 12930/20000, Loss: 0.0000\n",
      "Epoch: 12940/20000, Loss: 0.0000\n",
      "Epoch: 12950/20000, Loss: 0.0000\n",
      "Epoch: 12960/20000, Loss: 0.0000\n",
      "Epoch: 12970/20000, Loss: 0.0000\n",
      "Epoch: 12980/20000, Loss: 0.0000\n",
      "Epoch: 12990/20000, Loss: 0.0000\n",
      "Epoch: 13000/20000, Loss: 0.0000\n",
      "Epoch: 13010/20000, Loss: 0.0000\n",
      "Epoch: 13020/20000, Loss: 0.0000\n",
      "Epoch: 13030/20000, Loss: 0.0000\n",
      "Epoch: 13040/20000, Loss: 0.0000\n",
      "Epoch: 13050/20000, Loss: 0.0000\n",
      "Epoch: 13060/20000, Loss: 0.0000\n",
      "Epoch: 13070/20000, Loss: 0.0000\n",
      "Epoch: 13080/20000, Loss: 0.0000\n",
      "Epoch: 13090/20000, Loss: 0.0000\n",
      "Epoch: 13100/20000, Loss: 0.0000\n",
      "Epoch: 13110/20000, Loss: 0.0000\n",
      "Epoch: 13120/20000, Loss: 0.0000\n",
      "Epoch: 13130/20000, Loss: 0.0000\n",
      "Epoch: 13140/20000, Loss: 0.0000\n",
      "Epoch: 13150/20000, Loss: 0.0000\n",
      "Epoch: 13160/20000, Loss: 0.0000\n",
      "Epoch: 13170/20000, Loss: 0.0000\n",
      "Epoch: 13180/20000, Loss: 0.0000\n",
      "Epoch: 13190/20000, Loss: 0.0000\n",
      "Epoch: 13200/20000, Loss: 0.0000\n",
      "Epoch: 13210/20000, Loss: 0.0000\n",
      "Epoch: 13220/20000, Loss: 0.0000\n",
      "Epoch: 13230/20000, Loss: 0.0000\n",
      "Epoch: 13240/20000, Loss: 0.0000\n",
      "Epoch: 13250/20000, Loss: 0.0000\n",
      "Epoch: 13260/20000, Loss: 0.0000\n",
      "Epoch: 13270/20000, Loss: 0.0000\n",
      "Epoch: 13280/20000, Loss: 0.0000\n",
      "Epoch: 13290/20000, Loss: 0.0000\n",
      "Epoch: 13300/20000, Loss: 0.0000\n",
      "Epoch: 13310/20000, Loss: 0.0000\n",
      "Epoch: 13320/20000, Loss: 0.0000\n",
      "Epoch: 13330/20000, Loss: 0.0000\n",
      "Epoch: 13340/20000, Loss: 0.0000\n",
      "Epoch: 13350/20000, Loss: 0.0000\n",
      "Epoch: 13360/20000, Loss: 0.0000\n",
      "Epoch: 13370/20000, Loss: 0.0000\n",
      "Epoch: 13380/20000, Loss: 0.0000\n",
      "Epoch: 13390/20000, Loss: 0.0000\n",
      "Epoch: 13400/20000, Loss: 0.0000\n",
      "Epoch: 13410/20000, Loss: 0.0000\n",
      "Epoch: 13420/20000, Loss: 0.0000\n",
      "Epoch: 13430/20000, Loss: 0.0000\n",
      "Epoch: 13440/20000, Loss: 0.0000\n",
      "Epoch: 13450/20000, Loss: 0.0001\n",
      "Epoch: 13460/20000, Loss: 0.0000\n",
      "Epoch: 13470/20000, Loss: 0.0000\n",
      "Epoch: 13480/20000, Loss: 0.0000\n",
      "Epoch: 13490/20000, Loss: 0.0000\n",
      "Epoch: 13500/20000, Loss: 0.0000\n",
      "Epoch: 13510/20000, Loss: 0.0000\n",
      "Epoch: 13520/20000, Loss: 0.0000\n",
      "Epoch: 13530/20000, Loss: 0.0000\n",
      "Epoch: 13540/20000, Loss: 0.0000\n",
      "Epoch: 13550/20000, Loss: 0.0000\n",
      "Epoch: 13560/20000, Loss: 0.0000\n",
      "Epoch: 13570/20000, Loss: 0.0000\n",
      "Epoch: 13580/20000, Loss: 0.0000\n",
      "Epoch: 13590/20000, Loss: 0.0000\n",
      "Epoch: 13600/20000, Loss: 0.0000\n",
      "Epoch: 13610/20000, Loss: 0.0000\n",
      "Epoch: 13620/20000, Loss: 0.0000\n",
      "Epoch: 13630/20000, Loss: 0.0000\n",
      "Epoch: 13640/20000, Loss: 0.0000\n",
      "Epoch: 13650/20000, Loss: 0.0000\n",
      "Epoch: 13660/20000, Loss: 0.0000\n",
      "Epoch: 13670/20000, Loss: 0.0000\n",
      "Epoch: 13680/20000, Loss: 0.0000\n",
      "Epoch: 13690/20000, Loss: 0.0000\n",
      "Epoch: 13700/20000, Loss: 0.0000\n",
      "Epoch: 13710/20000, Loss: 0.0000\n",
      "Epoch: 13720/20000, Loss: 0.0000\n",
      "Epoch: 13730/20000, Loss: 0.0000\n",
      "Epoch: 13740/20000, Loss: 0.0000\n",
      "Epoch: 13750/20000, Loss: 0.0000\n",
      "Epoch: 13760/20000, Loss: 0.0000\n",
      "Epoch: 13770/20000, Loss: 0.0000\n",
      "Epoch: 13780/20000, Loss: 0.0000\n",
      "Epoch: 13790/20000, Loss: 0.0000\n",
      "Epoch: 13800/20000, Loss: 0.0000\n",
      "Epoch: 13810/20000, Loss: 0.0000\n",
      "Epoch: 13820/20000, Loss: 0.0000\n",
      "Epoch: 13830/20000, Loss: 0.0000\n",
      "Epoch: 13840/20000, Loss: 0.0000\n",
      "Epoch: 13850/20000, Loss: 0.0000\n",
      "Epoch: 13860/20000, Loss: 0.0000\n",
      "Epoch: 13870/20000, Loss: 0.0000\n",
      "Epoch: 13880/20000, Loss: 0.0000\n",
      "Epoch: 13890/20000, Loss: 0.0000\n",
      "Epoch: 13900/20000, Loss: 0.0000\n",
      "Epoch: 13910/20000, Loss: 0.0000\n",
      "Epoch: 13920/20000, Loss: 0.0000\n",
      "Epoch: 13930/20000, Loss: 0.0000\n",
      "Epoch: 13940/20000, Loss: 0.0000\n",
      "Epoch: 13950/20000, Loss: 0.0000\n",
      "Epoch: 13960/20000, Loss: 0.0000\n",
      "Epoch: 13970/20000, Loss: 0.0000\n",
      "Epoch: 13980/20000, Loss: 0.0000\n",
      "Epoch: 13990/20000, Loss: 0.0000\n",
      "Epoch: 14000/20000, Loss: 0.0000\n",
      "Epoch: 14010/20000, Loss: 0.0000\n",
      "Epoch: 14020/20000, Loss: 0.0000\n",
      "Epoch: 14030/20000, Loss: 0.0000\n",
      "Epoch: 14040/20000, Loss: 0.0000\n",
      "Epoch: 14050/20000, Loss: 0.0000\n",
      "Epoch: 14060/20000, Loss: 0.0000\n",
      "Epoch: 14070/20000, Loss: 0.0000\n",
      "Epoch: 14080/20000, Loss: 0.0000\n",
      "Epoch: 14090/20000, Loss: 0.0000\n",
      "Epoch: 14100/20000, Loss: 0.0000\n",
      "Epoch: 14110/20000, Loss: 0.0000\n",
      "Epoch: 14120/20000, Loss: 0.0000\n",
      "Epoch: 14130/20000, Loss: 0.0000\n",
      "Epoch: 14140/20000, Loss: 0.0000\n",
      "Epoch: 14150/20000, Loss: 0.0000\n",
      "Epoch: 14160/20000, Loss: 0.0000\n",
      "Epoch: 14170/20000, Loss: 0.0000\n",
      "Epoch: 14180/20000, Loss: 0.0000\n",
      "Epoch: 14190/20000, Loss: 0.0000\n",
      "Epoch: 14200/20000, Loss: 0.0000\n",
      "Epoch: 14210/20000, Loss: 0.0000\n",
      "Epoch: 14220/20000, Loss: 0.0000\n",
      "Epoch: 14230/20000, Loss: 0.0000\n",
      "Epoch: 14240/20000, Loss: 0.0000\n",
      "Epoch: 14250/20000, Loss: 0.0000\n",
      "Epoch: 14260/20000, Loss: 0.0000\n",
      "Epoch: 14270/20000, Loss: 0.0000\n",
      "Epoch: 14280/20000, Loss: 0.0000\n",
      "Epoch: 14290/20000, Loss: 0.0000\n",
      "Epoch: 14300/20000, Loss: 0.0000\n",
      "Epoch: 14310/20000, Loss: 0.0000\n",
      "Epoch: 14320/20000, Loss: 0.0000\n",
      "Epoch: 14330/20000, Loss: 0.0000\n",
      "Epoch: 14340/20000, Loss: 0.0000\n",
      "Epoch: 14350/20000, Loss: 0.0000\n",
      "Epoch: 14360/20000, Loss: 0.0000\n",
      "Epoch: 14370/20000, Loss: 0.0000\n",
      "Epoch: 14380/20000, Loss: 0.0000\n",
      "Epoch: 14390/20000, Loss: 0.0000\n",
      "Epoch: 14400/20000, Loss: 0.0000\n",
      "Epoch: 14410/20000, Loss: 0.0000\n",
      "Epoch: 14420/20000, Loss: 0.0000\n",
      "Epoch: 14430/20000, Loss: 0.0000\n",
      "Epoch: 14440/20000, Loss: 0.0000\n",
      "Epoch: 14450/20000, Loss: 0.0000\n",
      "Epoch: 14460/20000, Loss: 0.0000\n",
      "Epoch: 14470/20000, Loss: 0.0000\n",
      "Epoch: 14480/20000, Loss: 0.0000\n",
      "Epoch: 14490/20000, Loss: 0.0000\n",
      "Epoch: 14500/20000, Loss: 0.0000\n",
      "Epoch: 14510/20000, Loss: 0.0000\n",
      "Epoch: 14520/20000, Loss: 0.0000\n",
      "Epoch: 14530/20000, Loss: 0.0000\n",
      "Epoch: 14540/20000, Loss: 0.0000\n",
      "Epoch: 14550/20000, Loss: 0.0000\n",
      "Epoch: 14560/20000, Loss: 0.0000\n",
      "Epoch: 14570/20000, Loss: 0.0000\n",
      "Epoch: 14580/20000, Loss: 0.0000\n",
      "Epoch: 14590/20000, Loss: 0.0000\n",
      "Epoch: 14600/20000, Loss: 0.0000\n",
      "Epoch: 14610/20000, Loss: 0.0000\n",
      "Epoch: 14620/20000, Loss: 0.0000\n",
      "Epoch: 14630/20000, Loss: 0.0000\n",
      "Epoch: 14640/20000, Loss: 0.0000\n",
      "Epoch: 14650/20000, Loss: 0.0000\n",
      "Epoch: 14660/20000, Loss: 0.0000\n",
      "Epoch: 14670/20000, Loss: 0.0000\n",
      "Epoch: 14680/20000, Loss: 0.0000\n",
      "Epoch: 14690/20000, Loss: 0.0000\n",
      "Epoch: 14700/20000, Loss: 0.0000\n",
      "Epoch: 14710/20000, Loss: 0.0000\n",
      "Epoch: 14720/20000, Loss: 0.0000\n",
      "Epoch: 14730/20000, Loss: 0.0000\n",
      "Epoch: 14740/20000, Loss: 0.0000\n",
      "Epoch: 14750/20000, Loss: 0.0000\n",
      "Epoch: 14760/20000, Loss: 0.0000\n",
      "Epoch: 14770/20000, Loss: 0.0000\n",
      "Epoch: 14780/20000, Loss: 0.0000\n",
      "Epoch: 14790/20000, Loss: 0.0000\n",
      "Epoch: 14800/20000, Loss: 0.0000\n",
      "Epoch: 14810/20000, Loss: 0.0000\n",
      "Epoch: 14820/20000, Loss: 0.0000\n",
      "Epoch: 14830/20000, Loss: 0.0000\n",
      "Epoch: 14840/20000, Loss: 0.0000\n",
      "Epoch: 14850/20000, Loss: 0.0000\n",
      "Epoch: 14860/20000, Loss: 0.0000\n",
      "Epoch: 14870/20000, Loss: 0.0000\n",
      "Epoch: 14880/20000, Loss: 0.0000\n",
      "Epoch: 14890/20000, Loss: 0.0000\n",
      "Epoch: 14900/20000, Loss: 0.0000\n",
      "Epoch: 14910/20000, Loss: 0.0000\n",
      "Epoch: 14920/20000, Loss: 0.0000\n",
      "Epoch: 14930/20000, Loss: 0.0000\n",
      "Epoch: 14940/20000, Loss: 0.0000\n",
      "Epoch: 14950/20000, Loss: 0.0000\n",
      "Epoch: 14960/20000, Loss: 0.0000\n",
      "Epoch: 14970/20000, Loss: 0.0000\n",
      "Epoch: 14980/20000, Loss: 0.0000\n",
      "Epoch: 14990/20000, Loss: 0.0000\n",
      "Epoch: 15000/20000, Loss: 0.0000\n",
      "Epoch: 15010/20000, Loss: 0.0000\n",
      "Epoch: 15020/20000, Loss: 0.0000\n",
      "Epoch: 15030/20000, Loss: 0.0000\n",
      "Epoch: 15040/20000, Loss: 0.0000\n",
      "Epoch: 15050/20000, Loss: 0.0000\n",
      "Epoch: 15060/20000, Loss: 0.0000\n",
      "Epoch: 15070/20000, Loss: 0.0000\n",
      "Epoch: 15080/20000, Loss: 0.0000\n",
      "Epoch: 15090/20000, Loss: 0.0000\n",
      "Epoch: 15100/20000, Loss: 0.0000\n",
      "Epoch: 15110/20000, Loss: 0.0000\n",
      "Epoch: 15120/20000, Loss: 0.0000\n",
      "Epoch: 15130/20000, Loss: 0.0000\n",
      "Epoch: 15140/20000, Loss: 0.0000\n",
      "Epoch: 15150/20000, Loss: 0.0000\n",
      "Epoch: 15160/20000, Loss: 0.0000\n",
      "Epoch: 15170/20000, Loss: 0.0000\n",
      "Epoch: 15180/20000, Loss: 0.0000\n",
      "Epoch: 15190/20000, Loss: 0.0000\n",
      "Epoch: 15200/20000, Loss: 0.0000\n",
      "Epoch: 15210/20000, Loss: 0.0000\n",
      "Epoch: 15220/20000, Loss: 0.0000\n",
      "Epoch: 15230/20000, Loss: 0.0000\n",
      "Epoch: 15240/20000, Loss: 0.0000\n",
      "Epoch: 15250/20000, Loss: 0.0000\n",
      "Epoch: 15260/20000, Loss: 0.0000\n",
      "Epoch: 15270/20000, Loss: 0.0000\n",
      "Epoch: 15280/20000, Loss: 0.0000\n",
      "Epoch: 15290/20000, Loss: 0.0000\n",
      "Epoch: 15300/20000, Loss: 0.0000\n",
      "Epoch: 15310/20000, Loss: 0.0000\n",
      "Epoch: 15320/20000, Loss: 0.0000\n",
      "Epoch: 15330/20000, Loss: 0.0000\n",
      "Epoch: 15340/20000, Loss: 0.0000\n",
      "Epoch: 15350/20000, Loss: 0.0000\n",
      "Epoch: 15360/20000, Loss: 0.0000\n",
      "Epoch: 15370/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 15380/20000, Loss: 0.0000\n",
      "Epoch: 15390/20000, Loss: 0.0000\n",
      "Epoch: 15400/20000, Loss: 0.0000\n",
      "Epoch: 15410/20000, Loss: 0.0000\n",
      "Epoch: 15420/20000, Loss: 0.0000\n",
      "Epoch: 15430/20000, Loss: 0.0000\n",
      "Epoch: 15440/20000, Loss: 0.0000\n",
      "Epoch: 15450/20000, Loss: 0.0000\n",
      "Epoch: 15460/20000, Loss: 0.0000\n",
      "Epoch: 15470/20000, Loss: 0.0000\n",
      "Epoch: 15480/20000, Loss: 0.0000\n",
      "Epoch: 15490/20000, Loss: 0.0000\n",
      "Epoch: 15500/20000, Loss: 0.0000\n",
      "Epoch: 15510/20000, Loss: 0.0000\n",
      "Epoch: 15520/20000, Loss: 0.0000\n",
      "Epoch: 15530/20000, Loss: 0.0000\n",
      "Epoch: 15540/20000, Loss: 0.0000\n",
      "Epoch: 15550/20000, Loss: 0.0000\n",
      "Epoch: 15560/20000, Loss: 0.0000\n",
      "Epoch: 15570/20000, Loss: 0.0000\n",
      "Epoch: 15580/20000, Loss: 0.0000\n",
      "Epoch: 15590/20000, Loss: 0.0000\n",
      "Epoch: 15600/20000, Loss: 0.0000\n",
      "Epoch: 15610/20000, Loss: 0.0000\n",
      "Epoch: 15620/20000, Loss: 0.0000\n",
      "Epoch: 15630/20000, Loss: 0.0000\n",
      "Epoch: 15640/20000, Loss: 0.0000\n",
      "Epoch: 15650/20000, Loss: 0.0000\n",
      "Epoch: 15660/20000, Loss: 0.0000\n",
      "Epoch: 15670/20000, Loss: 0.0000\n",
      "Epoch: 15680/20000, Loss: 0.0000\n",
      "Epoch: 15690/20000, Loss: 0.0000\n",
      "Epoch: 15700/20000, Loss: 0.0000\n",
      "Epoch: 15710/20000, Loss: 0.0000\n",
      "Epoch: 15720/20000, Loss: 0.0000\n",
      "Epoch: 15730/20000, Loss: 0.0000\n",
      "Epoch: 15740/20000, Loss: 0.0000\n",
      "Epoch: 15750/20000, Loss: 0.0000\n",
      "Epoch: 15760/20000, Loss: 0.0000\n",
      "Epoch: 15770/20000, Loss: 0.0000\n",
      "Epoch: 15780/20000, Loss: 0.0000\n",
      "Epoch: 15790/20000, Loss: 0.0000\n",
      "Epoch: 15800/20000, Loss: 0.0000\n",
      "Epoch: 15810/20000, Loss: 0.0000\n",
      "Epoch: 15820/20000, Loss: 0.0000\n",
      "Epoch: 15830/20000, Loss: 0.0000\n",
      "Epoch: 15840/20000, Loss: 0.0000\n",
      "Epoch: 15850/20000, Loss: 0.0000\n",
      "Epoch: 15860/20000, Loss: 0.0000\n",
      "Epoch: 15870/20000, Loss: 0.0000\n",
      "Epoch: 15880/20000, Loss: 0.0000\n",
      "Epoch: 15890/20000, Loss: 0.0000\n",
      "Epoch: 15900/20000, Loss: 0.0000\n",
      "Epoch: 15910/20000, Loss: 0.0000\n",
      "Epoch: 15920/20000, Loss: 0.0000\n",
      "Epoch: 15930/20000, Loss: 0.0000\n",
      "Epoch: 15940/20000, Loss: 0.0000\n",
      "Epoch: 15950/20000, Loss: 0.0000\n",
      "Epoch: 15960/20000, Loss: 0.0000\n",
      "Epoch: 15970/20000, Loss: 0.0000\n",
      "Epoch: 15980/20000, Loss: 0.0000\n",
      "Epoch: 15990/20000, Loss: 0.0000\n",
      "Epoch: 16000/20000, Loss: 0.0000\n",
      "Epoch: 16010/20000, Loss: 0.0000\n",
      "Epoch: 16020/20000, Loss: 0.0000\n",
      "Epoch: 16030/20000, Loss: 0.0000\n",
      "Epoch: 16040/20000, Loss: 0.0000\n",
      "Epoch: 16050/20000, Loss: 0.0000\n",
      "Epoch: 16060/20000, Loss: 0.0000\n",
      "Epoch: 16070/20000, Loss: 0.0000\n",
      "Epoch: 16080/20000, Loss: 0.0000\n",
      "Epoch: 16090/20000, Loss: 0.0000\n",
      "Epoch: 16100/20000, Loss: 0.0000\n",
      "Epoch: 16110/20000, Loss: 0.0000\n",
      "Epoch: 16120/20000, Loss: 0.0000\n",
      "Epoch: 16130/20000, Loss: 0.0000\n",
      "Epoch: 16140/20000, Loss: 0.0000\n",
      "Epoch: 16150/20000, Loss: 0.0000\n",
      "Epoch: 16160/20000, Loss: 0.0000\n",
      "Epoch: 16170/20000, Loss: 0.0000\n",
      "Epoch: 16180/20000, Loss: 0.0000\n",
      "Epoch: 16190/20000, Loss: 0.0000\n",
      "Epoch: 16200/20000, Loss: 0.0000\n",
      "Epoch: 16210/20000, Loss: 0.0000\n",
      "Epoch: 16220/20000, Loss: 0.0000\n",
      "Epoch: 16230/20000, Loss: 0.0000\n",
      "Epoch: 16240/20000, Loss: 0.0000\n",
      "Epoch: 16250/20000, Loss: 0.0000\n",
      "Epoch: 16260/20000, Loss: 0.0000\n",
      "Epoch: 16270/20000, Loss: 0.0000\n",
      "Epoch: 16280/20000, Loss: 0.0000\n",
      "Epoch: 16290/20000, Loss: 0.0000\n",
      "Epoch: 16300/20000, Loss: 0.0000\n",
      "Epoch: 16310/20000, Loss: 0.0000\n",
      "Epoch: 16320/20000, Loss: 0.0000\n",
      "Epoch: 16330/20000, Loss: 0.0000\n",
      "Epoch: 16340/20000, Loss: 0.0000\n",
      "Epoch: 16350/20000, Loss: 0.0000\n",
      "Epoch: 16360/20000, Loss: 0.0000\n",
      "Epoch: 16370/20000, Loss: 0.0000\n",
      "Epoch: 16380/20000, Loss: 0.0000\n",
      "Epoch: 16390/20000, Loss: 0.0000\n",
      "Epoch: 16400/20000, Loss: 0.0000\n",
      "Epoch: 16410/20000, Loss: 0.0000\n",
      "Epoch: 16420/20000, Loss: 0.0000\n",
      "Epoch: 16430/20000, Loss: 0.0000\n",
      "Epoch: 16440/20000, Loss: 0.0000\n",
      "Epoch: 16450/20000, Loss: 0.0000\n",
      "Epoch: 16460/20000, Loss: 0.0000\n",
      "Epoch: 16470/20000, Loss: 0.0000\n",
      "Epoch: 16480/20000, Loss: 0.0000\n",
      "Epoch: 16490/20000, Loss: 0.0000\n",
      "Epoch: 16500/20000, Loss: 0.0000\n",
      "Epoch: 16510/20000, Loss: 0.0000\n",
      "Epoch: 16520/20000, Loss: 0.0000\n",
      "Epoch: 16530/20000, Loss: 0.0000\n",
      "Epoch: 16540/20000, Loss: 0.0000\n",
      "Epoch: 16550/20000, Loss: 0.0000\n",
      "Epoch: 16560/20000, Loss: 0.0000\n",
      "Epoch: 16570/20000, Loss: 0.0000\n",
      "Epoch: 16580/20000, Loss: 0.0000\n",
      "Epoch: 16590/20000, Loss: 0.0000\n",
      "Epoch: 16600/20000, Loss: 0.0000\n",
      "Epoch: 16610/20000, Loss: 0.0000\n",
      "Epoch: 16620/20000, Loss: 0.0000\n",
      "Epoch: 16630/20000, Loss: 0.0000\n",
      "Epoch: 16640/20000, Loss: 0.0000\n",
      "Epoch: 16650/20000, Loss: 0.0000\n",
      "Epoch: 16660/20000, Loss: 0.0000\n",
      "Epoch: 16670/20000, Loss: 0.0000\n",
      "Epoch: 16680/20000, Loss: 0.0000\n",
      "Epoch: 16690/20000, Loss: 0.0000\n",
      "Epoch: 16700/20000, Loss: 0.0000\n",
      "Epoch: 16710/20000, Loss: 0.0000\n",
      "Epoch: 16720/20000, Loss: 0.0000\n",
      "Epoch: 16730/20000, Loss: 0.0000\n",
      "Epoch: 16740/20000, Loss: 0.0000\n",
      "Epoch: 16750/20000, Loss: 0.0000\n",
      "Epoch: 16760/20000, Loss: 0.0000\n",
      "Epoch: 16770/20000, Loss: 0.0000\n",
      "Epoch: 16780/20000, Loss: 0.0000\n",
      "Epoch: 16790/20000, Loss: 0.0000\n",
      "Epoch: 16800/20000, Loss: 0.0000\n",
      "Epoch: 16810/20000, Loss: 0.0000\n",
      "Epoch: 16820/20000, Loss: 0.0000\n",
      "Epoch: 16830/20000, Loss: 0.0000\n",
      "Epoch: 16840/20000, Loss: 0.0000\n",
      "Epoch: 16850/20000, Loss: 0.0000\n",
      "Epoch: 16860/20000, Loss: 0.0000\n",
      "Epoch: 16870/20000, Loss: 0.0000\n",
      "Epoch: 16880/20000, Loss: 0.0000\n",
      "Epoch: 16890/20000, Loss: 0.0000\n",
      "Epoch: 16900/20000, Loss: 0.0000\n",
      "Epoch: 16910/20000, Loss: 0.0000\n",
      "Epoch: 16920/20000, Loss: 0.0000\n",
      "Epoch: 16930/20000, Loss: 0.0000\n",
      "Epoch: 16940/20000, Loss: 0.0000\n",
      "Epoch: 16950/20000, Loss: 0.0000\n",
      "Epoch: 16960/20000, Loss: 0.0000\n",
      "Epoch: 16970/20000, Loss: 0.0000\n",
      "Epoch: 16980/20000, Loss: 0.0000\n",
      "Epoch: 16990/20000, Loss: 0.0000\n",
      "Epoch: 17000/20000, Loss: 0.0000\n",
      "Epoch: 17010/20000, Loss: 0.0000\n",
      "Epoch: 17020/20000, Loss: 0.0000\n",
      "Epoch: 17030/20000, Loss: 0.0000\n",
      "Epoch: 17040/20000, Loss: 0.0000\n",
      "Epoch: 17050/20000, Loss: 0.0000\n",
      "Epoch: 17060/20000, Loss: 0.0000\n",
      "Epoch: 17070/20000, Loss: 0.0000\n",
      "Epoch: 17080/20000, Loss: 0.0000\n",
      "Epoch: 17090/20000, Loss: 0.0000\n",
      "Epoch: 17100/20000, Loss: 0.0000\n",
      "Epoch: 17110/20000, Loss: 0.0000\n",
      "Epoch: 17120/20000, Loss: 0.0000\n",
      "Epoch: 17130/20000, Loss: 0.0000\n",
      "Epoch: 17140/20000, Loss: 0.0000\n",
      "Epoch: 17150/20000, Loss: 0.0000\n",
      "Epoch: 17160/20000, Loss: 0.0000\n",
      "Epoch: 17170/20000, Loss: 0.0000\n",
      "Epoch: 17180/20000, Loss: 0.0000\n",
      "Epoch: 17190/20000, Loss: 0.0000\n",
      "Epoch: 17200/20000, Loss: 0.0000\n",
      "Epoch: 17210/20000, Loss: 0.0000\n",
      "Epoch: 17220/20000, Loss: 0.0000\n",
      "Epoch: 17230/20000, Loss: 0.0000\n",
      "Epoch: 17240/20000, Loss: 0.0000\n",
      "Epoch: 17250/20000, Loss: 0.0000\n",
      "Epoch: 17260/20000, Loss: 0.0000\n",
      "Epoch: 17270/20000, Loss: 0.0000\n",
      "Epoch: 17280/20000, Loss: 0.0000\n",
      "Epoch: 17290/20000, Loss: 0.0000\n",
      "Epoch: 17300/20000, Loss: 0.0000\n",
      "Epoch: 17310/20000, Loss: 0.0000\n",
      "Epoch: 17320/20000, Loss: 0.0000\n",
      "Epoch: 17330/20000, Loss: 0.0000\n",
      "Epoch: 17340/20000, Loss: 0.0000\n",
      "Epoch: 17350/20000, Loss: 0.0000\n",
      "Epoch: 17360/20000, Loss: 0.0000\n",
      "Epoch: 17370/20000, Loss: 0.0000\n",
      "Epoch: 17380/20000, Loss: 0.0001\n",
      "Epoch: 17390/20000, Loss: 0.0000\n",
      "Epoch: 17400/20000, Loss: 0.0000\n",
      "Epoch: 17410/20000, Loss: 0.0000\n",
      "Epoch: 17420/20000, Loss: 0.0000\n",
      "Epoch: 17430/20000, Loss: 0.0000\n",
      "Epoch: 17440/20000, Loss: 0.0000\n",
      "Epoch: 17450/20000, Loss: 0.0000\n",
      "Epoch: 17460/20000, Loss: 0.0000\n",
      "Epoch: 17470/20000, Loss: 0.0000\n",
      "Epoch: 17480/20000, Loss: 0.0000\n",
      "Epoch: 17490/20000, Loss: 0.0000\n",
      "Epoch: 17500/20000, Loss: 0.0000\n",
      "Epoch: 17510/20000, Loss: 0.0000\n",
      "Epoch: 17520/20000, Loss: 0.0000\n",
      "Epoch: 17530/20000, Loss: 0.0000\n",
      "Epoch: 17540/20000, Loss: 0.0000\n",
      "Epoch: 17550/20000, Loss: 0.0000\n",
      "Epoch: 17560/20000, Loss: 0.0000\n",
      "Epoch: 17570/20000, Loss: 0.0000\n",
      "Epoch: 17580/20000, Loss: 0.0000\n",
      "Epoch: 17590/20000, Loss: 0.0000\n",
      "Epoch: 17600/20000, Loss: 0.0000\n",
      "Epoch: 17610/20000, Loss: 0.0000\n",
      "Epoch: 17620/20000, Loss: 0.0000\n",
      "Epoch: 17630/20000, Loss: 0.0000\n",
      "Epoch: 17640/20000, Loss: 0.0000\n",
      "Epoch: 17650/20000, Loss: 0.0000\n",
      "Epoch: 17660/20000, Loss: 0.0000\n",
      "Epoch: 17670/20000, Loss: 0.0000\n",
      "Epoch: 17680/20000, Loss: 0.0000\n",
      "Epoch: 17690/20000, Loss: 0.0000\n",
      "Epoch: 17700/20000, Loss: 0.0000\n",
      "Epoch: 17710/20000, Loss: 0.0000\n",
      "Epoch: 17720/20000, Loss: 0.0000\n",
      "Epoch: 17730/20000, Loss: 0.0000\n",
      "Epoch: 17740/20000, Loss: 0.0000\n",
      "Epoch: 17750/20000, Loss: 0.0000\n",
      "Epoch: 17760/20000, Loss: 0.0000\n",
      "Epoch: 17770/20000, Loss: 0.0000\n",
      "Epoch: 17780/20000, Loss: 0.0000\n",
      "Epoch: 17790/20000, Loss: 0.0000\n",
      "Epoch: 17800/20000, Loss: 0.0000\n",
      "Epoch: 17810/20000, Loss: 0.0000\n",
      "Epoch: 17820/20000, Loss: 0.0000\n",
      "Epoch: 17830/20000, Loss: 0.0000\n",
      "Epoch: 17840/20000, Loss: 0.0000\n",
      "Epoch: 17850/20000, Loss: 0.0000\n",
      "Epoch: 17860/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 17870/20000, Loss: 0.0000\n",
      "Epoch: 17880/20000, Loss: 0.0000\n",
      "Epoch: 17890/20000, Loss: 0.0000\n",
      "Epoch: 17900/20000, Loss: 0.0000\n",
      "Epoch: 17910/20000, Loss: 0.0000\n",
      "Epoch: 17920/20000, Loss: 0.0000\n",
      "Epoch: 17930/20000, Loss: 0.0000\n",
      "Epoch: 17940/20000, Loss: 0.0000\n",
      "Epoch: 17950/20000, Loss: 0.0000\n",
      "Epoch: 17960/20000, Loss: 0.0000\n",
      "Epoch: 17970/20000, Loss: 0.0000\n",
      "Epoch: 17980/20000, Loss: 0.0000\n",
      "Epoch: 17990/20000, Loss: 0.0000\n",
      "Epoch: 18000/20000, Loss: 0.0000\n",
      "Epoch: 18010/20000, Loss: 0.0000\n",
      "Epoch: 18020/20000, Loss: 0.0000\n",
      "Epoch: 18030/20000, Loss: 0.0000\n",
      "Epoch: 18040/20000, Loss: 0.0000\n",
      "Epoch: 18050/20000, Loss: 0.0000\n",
      "Epoch: 18060/20000, Loss: 0.0000\n",
      "Epoch: 18070/20000, Loss: 0.0000\n",
      "Epoch: 18080/20000, Loss: 0.0000\n",
      "Epoch: 18090/20000, Loss: 0.0000\n",
      "Epoch: 18100/20000, Loss: 0.0000\n",
      "Epoch: 18110/20000, Loss: 0.0000\n",
      "Epoch: 18120/20000, Loss: 0.0000\n",
      "Epoch: 18130/20000, Loss: 0.0000\n",
      "Epoch: 18140/20000, Loss: 0.0000\n",
      "Epoch: 18150/20000, Loss: 0.0000\n",
      "Epoch: 18160/20000, Loss: 0.0000\n",
      "Epoch: 18170/20000, Loss: 0.0000\n",
      "Epoch: 18180/20000, Loss: 0.0000\n",
      "Epoch: 18190/20000, Loss: 0.0000\n",
      "Epoch: 18200/20000, Loss: 0.0000\n",
      "Epoch: 18210/20000, Loss: 0.0000\n",
      "Epoch: 18220/20000, Loss: 0.0000\n",
      "Epoch: 18230/20000, Loss: 0.0000\n",
      "Epoch: 18240/20000, Loss: 0.0000\n",
      "Epoch: 18250/20000, Loss: 0.0000\n",
      "Epoch: 18260/20000, Loss: 0.0000\n",
      "Epoch: 18270/20000, Loss: 0.0000\n",
      "Epoch: 18280/20000, Loss: 0.0000\n",
      "Epoch: 18290/20000, Loss: 0.0000\n",
      "Epoch: 18300/20000, Loss: 0.0000\n",
      "Epoch: 18310/20000, Loss: 0.0000\n",
      "Epoch: 18320/20000, Loss: 0.0000\n",
      "Epoch: 18330/20000, Loss: 0.0000\n",
      "Epoch: 18340/20000, Loss: 0.0000\n",
      "Epoch: 18350/20000, Loss: 0.0000\n",
      "Epoch: 18360/20000, Loss: 0.0000\n",
      "Epoch: 18370/20000, Loss: 0.0000\n",
      "Epoch: 18380/20000, Loss: 0.0000\n",
      "Epoch: 18390/20000, Loss: 0.0000\n",
      "Epoch: 18400/20000, Loss: 0.0000\n",
      "Epoch: 18410/20000, Loss: 0.0000\n",
      "Epoch: 18420/20000, Loss: 0.0000\n",
      "Epoch: 18430/20000, Loss: 0.0000\n",
      "Epoch: 18440/20000, Loss: 0.0000\n",
      "Epoch: 18450/20000, Loss: 0.0000\n",
      "Epoch: 18460/20000, Loss: 0.0000\n",
      "Epoch: 18470/20000, Loss: 0.0000\n",
      "Epoch: 18480/20000, Loss: 0.0000\n",
      "Epoch: 18490/20000, Loss: 0.0000\n",
      "Epoch: 18500/20000, Loss: 0.0000\n",
      "Epoch: 18510/20000, Loss: 0.0000\n",
      "Epoch: 18520/20000, Loss: 0.0000\n",
      "Epoch: 18530/20000, Loss: 0.0000\n",
      "Epoch: 18540/20000, Loss: 0.0000\n",
      "Epoch: 18550/20000, Loss: 0.0000\n",
      "Epoch: 18560/20000, Loss: 0.0000\n",
      "Epoch: 18570/20000, Loss: 0.0000\n",
      "Epoch: 18580/20000, Loss: 0.0000\n",
      "Epoch: 18590/20000, Loss: 0.0000\n",
      "Epoch: 18600/20000, Loss: 0.0000\n",
      "Epoch: 18610/20000, Loss: 0.0000\n",
      "Epoch: 18620/20000, Loss: 0.0000\n",
      "Epoch: 18630/20000, Loss: 0.0000\n",
      "Epoch: 18640/20000, Loss: 0.0000\n",
      "Epoch: 18650/20000, Loss: 0.0000\n",
      "Epoch: 18660/20000, Loss: 0.0000\n",
      "Epoch: 18670/20000, Loss: 0.0000\n",
      "Epoch: 18680/20000, Loss: 0.0000\n",
      "Epoch: 18690/20000, Loss: 0.0000\n",
      "Epoch: 18700/20000, Loss: 0.0000\n",
      "Epoch: 18710/20000, Loss: 0.0000\n",
      "Epoch: 18720/20000, Loss: 0.0000\n",
      "Epoch: 18730/20000, Loss: 0.0000\n",
      "Epoch: 18740/20000, Loss: 0.0000\n",
      "Epoch: 18750/20000, Loss: 0.0000\n",
      "Epoch: 18760/20000, Loss: 0.0000\n",
      "Epoch: 18770/20000, Loss: 0.0000\n",
      "Epoch: 18780/20000, Loss: 0.0000\n",
      "Epoch: 18790/20000, Loss: 0.0000\n",
      "Epoch: 18800/20000, Loss: 0.0000\n",
      "Epoch: 18810/20000, Loss: 0.0000\n",
      "Epoch: 18820/20000, Loss: 0.0000\n",
      "Epoch: 18830/20000, Loss: 0.0000\n",
      "Epoch: 18840/20000, Loss: 0.0000\n",
      "Epoch: 18850/20000, Loss: 0.0000\n",
      "Epoch: 18860/20000, Loss: 0.0000\n",
      "Epoch: 18870/20000, Loss: 0.0000\n",
      "Epoch: 18880/20000, Loss: 0.0000\n",
      "Epoch: 18890/20000, Loss: 0.0000\n",
      "Epoch: 18900/20000, Loss: 0.0001\n",
      "Epoch: 18910/20000, Loss: 0.0000\n",
      "Epoch: 18920/20000, Loss: 0.0000\n",
      "Epoch: 18930/20000, Loss: 0.0000\n",
      "Epoch: 18940/20000, Loss: 0.0000\n",
      "Epoch: 18950/20000, Loss: 0.0000\n",
      "Epoch: 18960/20000, Loss: 0.0000\n",
      "Epoch: 18970/20000, Loss: 0.0000\n",
      "Epoch: 18980/20000, Loss: 0.0000\n",
      "Epoch: 18990/20000, Loss: 0.0000\n",
      "Epoch: 19000/20000, Loss: 0.0000\n",
      "Epoch: 19010/20000, Loss: 0.0000\n",
      "Epoch: 19020/20000, Loss: 0.0000\n",
      "Epoch: 19030/20000, Loss: 0.0000\n",
      "Epoch: 19040/20000, Loss: 0.0000\n",
      "Epoch: 19050/20000, Loss: 0.0000\n",
      "Epoch: 19060/20000, Loss: 0.0000\n",
      "Epoch: 19070/20000, Loss: 0.0000\n",
      "Epoch: 19080/20000, Loss: 0.0000\n",
      "Epoch: 19090/20000, Loss: 0.0000\n",
      "Epoch: 19100/20000, Loss: 0.0000\n",
      "Epoch: 19110/20000, Loss: 0.0000\n",
      "Epoch: 19120/20000, Loss: 0.0000\n",
      "Epoch: 19130/20000, Loss: 0.0000\n",
      "Epoch: 19140/20000, Loss: 0.0000\n",
      "Epoch: 19150/20000, Loss: 0.0000\n",
      "Epoch: 19160/20000, Loss: 0.0000\n",
      "Epoch: 19170/20000, Loss: 0.0000\n",
      "Epoch: 19180/20000, Loss: 0.0000\n",
      "Epoch: 19190/20000, Loss: 0.0000\n",
      "Epoch: 19200/20000, Loss: 0.0000\n",
      "Epoch: 19210/20000, Loss: 0.0000\n",
      "Epoch: 19220/20000, Loss: 0.0000\n",
      "Epoch: 19230/20000, Loss: 0.0000\n",
      "Epoch: 19240/20000, Loss: 0.0000\n",
      "Epoch: 19250/20000, Loss: 0.0000\n",
      "Epoch: 19260/20000, Loss: 0.0000\n",
      "Epoch: 19270/20000, Loss: 0.0000\n",
      "Epoch: 19280/20000, Loss: 0.0000\n",
      "Epoch: 19290/20000, Loss: 0.0000\n",
      "Epoch: 19300/20000, Loss: 0.0000\n",
      "Epoch: 19310/20000, Loss: 0.0000\n",
      "Epoch: 19320/20000, Loss: 0.0000\n",
      "Epoch: 19330/20000, Loss: 0.0000\n",
      "Epoch: 19340/20000, Loss: 0.0000\n",
      "Epoch: 19350/20000, Loss: 0.0000\n",
      "Epoch: 19360/20000, Loss: 0.0000\n",
      "Epoch: 19370/20000, Loss: 0.0000\n",
      "Epoch: 19380/20000, Loss: 0.0000\n",
      "Epoch: 19390/20000, Loss: 0.0000\n",
      "Epoch: 19400/20000, Loss: 0.0000\n",
      "Epoch: 19410/20000, Loss: 0.0000\n",
      "Epoch: 19420/20000, Loss: 0.0000\n",
      "Epoch: 19430/20000, Loss: 0.0000\n",
      "Epoch: 19440/20000, Loss: 0.0000\n",
      "Epoch: 19450/20000, Loss: 0.0000\n",
      "Epoch: 19460/20000, Loss: 0.0000\n",
      "Epoch: 19470/20000, Loss: 0.0000\n",
      "Epoch: 19480/20000, Loss: 0.0000\n",
      "Epoch: 19490/20000, Loss: 0.0000\n",
      "Epoch: 19500/20000, Loss: 0.0000\n",
      "Epoch: 19510/20000, Loss: 0.0000\n",
      "Epoch: 19520/20000, Loss: 0.0000\n",
      "Epoch: 19530/20000, Loss: 0.0000\n",
      "Epoch: 19540/20000, Loss: 0.0000\n",
      "Epoch: 19550/20000, Loss: 0.0000\n",
      "Epoch: 19560/20000, Loss: 0.0000\n",
      "Epoch: 19570/20000, Loss: 0.0000\n",
      "Epoch: 19580/20000, Loss: 0.0000\n",
      "Epoch: 19590/20000, Loss: 0.0000\n",
      "Epoch: 19600/20000, Loss: 0.0000\n",
      "Epoch: 19610/20000, Loss: 0.0000\n",
      "Epoch: 19620/20000, Loss: 0.0000\n",
      "Epoch: 19630/20000, Loss: 0.0000\n",
      "Epoch: 19640/20000, Loss: 0.0000\n",
      "Epoch: 19650/20000, Loss: 0.0000\n",
      "Epoch: 19660/20000, Loss: 0.0000\n",
      "Epoch: 19670/20000, Loss: 0.0000\n",
      "Epoch: 19680/20000, Loss: 0.0000\n",
      "Epoch: 19690/20000, Loss: 0.0000\n",
      "Epoch: 19700/20000, Loss: 0.0000\n",
      "Epoch: 19710/20000, Loss: 0.0000\n",
      "Epoch: 19720/20000, Loss: 0.0000\n",
      "Epoch: 19730/20000, Loss: 0.0000\n",
      "Epoch: 19740/20000, Loss: 0.0000\n",
      "Epoch: 19750/20000, Loss: 0.0000\n",
      "Epoch: 19760/20000, Loss: 0.0000\n",
      "Epoch: 19770/20000, Loss: 0.0000\n",
      "Epoch: 19780/20000, Loss: 0.0000\n",
      "Epoch: 19790/20000, Loss: 0.0000\n",
      "Epoch: 19800/20000, Loss: 0.0000\n",
      "Epoch: 19810/20000, Loss: 0.0000\n",
      "Epoch: 19820/20000, Loss: 0.0000\n",
      "Epoch: 19830/20000, Loss: 0.0000\n",
      "Epoch: 19840/20000, Loss: 0.0000\n",
      "Epoch: 19850/20000, Loss: 0.0000\n",
      "Epoch: 19860/20000, Loss: 0.0000\n",
      "Epoch: 19870/20000, Loss: 0.0000\n",
      "Epoch: 19880/20000, Loss: 0.0000\n",
      "Epoch: 19890/20000, Loss: 0.0000\n",
      "Epoch: 19900/20000, Loss: 0.0000\n",
      "Epoch: 19910/20000, Loss: 0.0000\n",
      "Epoch: 19920/20000, Loss: 0.0000\n",
      "Epoch: 19930/20000, Loss: 0.0000\n",
      "Epoch: 19940/20000, Loss: 0.0000\n",
      "Epoch: 19950/20000, Loss: 0.0000\n",
      "Epoch: 19960/20000, Loss: 0.0000\n",
      "Epoch: 19970/20000, Loss: 0.0000\n",
      "Epoch: 19980/20000, Loss: 0.0000\n",
      "Epoch: 19990/20000, Loss: 0.0000\n",
      "Epoch: 20000/20000, Loss: 0.0000\n"
     ]
    }
   ],
   "source": [
    "# Create LSTM instance\n",
    "lstm = LSTM(input_size, hidden_size, output_size)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(lstm.parameters(), lr=0.01)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Set initial hidden state and cell state\n",
    "    hidden = torch.zeros(1, batch_size, hidden_size)\n",
    "    cell = torch.zeros(1, batch_size, hidden_size)\n",
    "\n",
    "    # Forward pass\n",
    "    output, (hidden, cell) = lstm(input_tensor, (hidden, cell))\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch+1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch+1}/{num_epochs}, Loss: {loss.item():.4f}')\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "d9f648ec",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 20, 201])\n",
      "final_time_output torch.Size([20, 201])\n",
      "torch.Size([201])\n",
      "prediction (201,)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAyYElEQVR4nO3deZwc5X3n8c+v+u65L93HSEIc4rAEA4jDHAZzY/AVgy8c4yU4JnltNhsfSzab+Ejs2N7YmzixMXZwsAPGOAbZBmNOgwEBwlzikDQaoQtJc599Vz37R9WIljSja2qmWlO/9+vVr+murq76qab1naefrnoeMcaglFJq+rOCLkAppdTU0MBXSqmQ0MBXSqmQ0MBXSqmQ0MBXSqmQiAZdwHiam5tNa2tr0GUopdQR5fnnn+82xrSM9VzFBn5raytr1qwJugyllDqiiMjm8Z7TLh2llAoJDXyllAoJDXyllAoJDXyllAoJDXyllAoJDXyllAoJDXyllAqJij0PX6mDtWHXEA+93km2aDOrNsnKxY0saq5CRIIu7ZAZY3izJ0P3cJ6lM6qxHUOu5NCQjtGfKVIoObQ2VwVdpjpCaeCrQ5Yv2WzYNcwTG7r58erNRCPCh06dT65gM1KwScUijBRKVCeiHDOrhqc29rBrIMei5iqyRZtMwSYZi7CgMU0iavHi1n5m1yV5x/x6WmoSRC3BMQbbgZLjMJQrsWHXELPqUpx9VDMi0D2c59Xtg/x0zVae39y3T42zapOcsaSJs45q5qrlc4hFKvvD7Itb+7nl8Y08u6mP7uH8ftddNruW958yjwuPm8FQrsSzm3p5Y+cgS2fUcOK8OlqbqtjcM0LEEpqqE6zu6KF3pEBDOk5jVYzhvM3mnhGilsW2vgx/2NLH4pZqFjVXMZAp0tE9DMDVK+Zy0bJZtNQkyBVttvVl6RzMkSnYzG1IsXRGNdEKP65qT+LHBCgi8kPgCqDTGHPCGM8L8G3gMiADfMIY84f9bbOtrc3olbaVY2tvhh/8fhO/ennHHoG0cnEj+ZLDC1v6sQSSsQi5ok1VPEqmaGM7hlQswvzGFG/2ZKiKR6hKRMkWbHpGCgDMrE3QO1KgaB/6e3FxSxXXnDqf966YR3N1nI7uEZ7e2MPTHT2s3thDz0iBc45u4d8+cjJVicps33QO5bj0W08AcM7RLZza2sisugTtncPEIhapWIS+TJG6VIxc0eaeF7fz8raBPbbRkI7Rlyke9D4tAcdAbTJKW2sjG7uG2TGQoy4VY1FTFf3ZAut3De932w3pGDeeu4TrzmwlGYtM4AgoP4nI88aYtjGf8ynwzwGGgf8YJ/AvA/4MN/BPB75tjDl9f9vUwK8cnUM5LvnWEwzlilx8/CyOnllDa3MVy+fVs6ApjTGGnYM5GqviJKJv/8cfyZdYt2uIY2fVkI7vG7YDmaLbDVOXJFe0ae8cpmekgOMYLEuIiGBZkI5HOWpGNR1dw7ywpZ9oRGhMx5nfmOb4ObXjdt0YY7jzua3c/ItXWLm4iZ986vSK6+ZxHMN1//4sz73Zyy9vOpulM2sO6nXrdw3x/OY+6lIxTphTx4KmNN3DeV7ZPsDW3gwLGtM4xrBrME/bwgbmNaTpyxToyxRIxiIsbEwjIghgWfseE2MMr741yO/Wd7GtL8vc+iTzGtLMqE2Qjkd5s3uE/3phO4+v7+Ldy2Zyy8dOqbhjG1aTHvjeTlqBX40T+N8DHjPG3OE9XgecZ4zZMd72NPArgzGGT972HE9t7OHem87i2Fm1Y6/o2FDMQDEHpaz70ynuvbF9X2dFIJaCWPrtn5a/rcUfr97MX9+zlm9fs5yrls/1ddsT9YsXtvEXP32JL119Ah9budDfjTs2FEagMAylnPvYKY3xswRigRUFy/sZSUCyFhK1EK+CccL8+4938JX7XufLV5/AR/2uXx2W/QX+VH3GnQtsLXu8zVu2R+CLyA3ADQALFiyYotLU/ty/diePruvib69c9nbY92+FDb+Frc9C35vQvwWGdgA+zY8cSUCiGqpa3r5Vz4C6+dB0FDQtgYZFEDm4t++HT1vAXWu28g/3vcGFx82smK6dTKHE1+5fx0nz6vjIaYfwfs8PQ+fr0L0eht6CwR0wtNO9n+13A74w4v4B9kM0CQ2t0LgYWo6BRefAwrMhGuf6sxfx+/ZuvvSr17j8xNk0VMX92aeaFJXxzvcYY24BbgG3hR9wOQq454XtzKxN8PEzWmFgO/z2r+G1e8A4UD0LmpfCkvOhdq4b0tEUxJJeSz06Rstwr8dOyW19FjNQyEAx697PD8JIFwx3wY4XYbjTDbJRsSqYdwrMPx0WnwcLzhj3k4FlCf/nymW8/9+e5o5nt/Cpdy727wBNwK1PbGLnYI5/+fCKMbtVdssNwMZHYcODsPlJ6Nu05/OpBqiZAzWz3D+I8Wq3VZ6ocX/GqyGaACvmHiMrWnaLuDfjgOO83eIv5dzfQc77PfRucve74UH4/T+5+zvjM1grP81fXnQ07/mXJ3nkjU7ef8q8yT1oakKmKvC3A/PLHs/zlqkKNpwv8dj6Lj582gKsHS/AHddCfgjOuAlO/rgbLlPVb2sMZHqhdyP0tMNbL8CW1fDEN+Hxr7ufAt5xLZx6vdsa3cspCxtZsaCeO5/byvVnLwq8v9lxDHc+u4Vzj26hrbVx3xWMgY7H4Nnvw4YH3BBO1rmt6+UfgZnHu63t2rnuH9ipkh+GTb+DZ74Lv70Z3nyCE993C7Nqkzz42i4N/Ao3VYG/CrhJRO7E/dJ2YH/996oyPPpGJ4WSw5VHJeDHV7gt+I89BDOXTX0xIlDV5N7mnwbLP+wuzw9B+8Pwys/g6e/A6n+FFR+Dd/1vd90y1562gM/e/TJrNvdx6lghO4WefbOXtwZyfO7SY/d98q0X4IGb3dZ8uhlWfhqOuRzmnXrQ3ViTJlENx14Ox1wGz90K938OufcmLlz2Wf7rD9vJFW09Y6eC+XISrYjcATwNHCMi20TkehG5UURu9Fa5D+gA2oHvA3/qx37V5Lp/7Q6aqxOsaP9nt1vh2p8GE/b7k6iB46+Ga34C//0VOOUT8MLt8K+nwxu/3mPVK06aTU0iyn8+syWQUsvd88J20vEI71428+2Fjg2P/j18/wLo3gCXfQP+x2tw0Zdh4RnBh305ETjtv8H5/wteX8WH6teRKdg8tbE76MrUfvgS+MaYa40xs40xMWPMPGPMD4wx3zXGfNd73hhjPmOMWWKMOdEYo6ffHAGebO/hYwv7sf7wIzj9xsoL+73VzYXLvwk3/A5qZsOdH4bHvrb77KB0PMqVy+fwm7U7yRbswMrMl2zue2UHlxw/6+3TVQsj8NOPwu++Bid+EG561g3UaCKwOg/KmX8GTUs54cUvURc3PLauK+iK1H7oZXJqTAOZIgPZIucXHoVIHM77XNAlHbxZJ8D1D7p9+o/9Pfzm87tD/4qTZpMt2jy6rjOw8p5Y381grsR7ls9xFxSz8JM/gvW/gUu/Du/7nvtF7JEgmoB33Yz0v8kV9Vvo6BoJuiK1Hxr4akxbet1T+hb3PwWtZ7lfGB5JYkm4+t9g5WfcLxgf+TIAp7U20lQV575XgvsK6YFXd1KTjHLmkma3G+fu693++vd9H06/IbC6DttRF4IV4/zIS2zu1cCvZBr4akxb+zLMk06qhzpg6UVBl3N4RODir7hnFD3xDXj1HqIRi4tPmMUjb3SSK059t07Jdnjo9V1ccOwM4lELHv8GrPs1XPo1OPEDU16PLxI1sPBMluee5a3+HEXbCboiNQ4NfDWmLb0ZzrNech8c9e5gi5kIEbjsm+4ZLvd+BrrbueyE2WQKNr9bP/X9zc++2UtfpsglJ8yCN5+E330VTvoQnHYEtuzLHX0xzdkOZjmdvNWfDboaNQ4NfDWmLb0ZLoq95F7R2rQk6HImJhqHD/7IvcDol3/O6YvqSccjPNU+9WeU/PbVXSSiFucsroVVfwb1C90vmo/0cWi8T4HnR17c3R2oKo8GvhrT1p4RTpZ17lWsR3oYgXsGz7u/BJufJPbyf3LKwgae2dQ75WU8vqGLM5c0kX7+u+5FZJd/0+0SOdI1HYVdPYc2ax2bezTwK5UGvhrTYO8uqs2IO3TCdLHiY7DwLHjwbzh7fpw3dg7R6w3RPBV2Debo6BrhgnmO23d/7BVw1AVTtv9JJYLVfBStVqe28CuYBr7ah+0YogOb3QcNi4Itxk+W5X6Jm+3jypFfAPDsFLbyV3f0AHDJwF1QysNFX5qyfU8FaVzkBr628CuWBr7ax46BLHPNTvdBY2UMNOabOSvguPcw+/UfMCs2zDObeqZs10+199CaHKbpjf90v6idbse2cTH1ZpCuHr34qlJp4Kt9bO3N0iq73AcN03CM83f9NVIY4XP1j7G6Y+pa+E939PD5uocROw/v/Msp2++UaXQ/DUpvB37Ns6H8pYGv9rG1N8NCaxelqtnupCTTTcsxcMylXJL9NZt2dtOfmfx+/O39WTp7+zh/5H447kpoPmrS9znlvO6/GaUdU/rdiDp4GvhqH13DeRbILqymadR/v7czPkOqNMB7rSempB//+c19XBl5mkRp8Mg/5348Xgt/oXTunq9YVRYNfLWPwWyRhdKJNd36mMstPAtn5kl8MvoAz3RMfj/+S1v7+Xj0IUzLse6ZQtNRooZCsomFspOB7MFPqK6mjga+2kdmZJAZ0g+NrUGXMnlEsE6/gaWyjYENT0767gY61nCidCCnfmp6XNcwjmLtQhZKJwMZDfxKpIGv9hEf9MaLn84tfIDj30vBSnNq368ntUVatB2O776fksSO3PFyDpJpWMwCa5e28CuUBr7aR1XGm29+Op2DP5ZENX2Lr+AK62n+sH7yJkV5Y3s/l8lTdM0658gZ9vgwRZoWM5teRkaGD7yymnIa+Gof1dm33Dv10/CUzL3Un/VJqiRP5sWfT9o+dr78IDOln9jyD03aPipFoqUVSwz2gE5ZXYk08NU+4oV+HGTat0YBEq0reSsyhwXbfjVp+6htv4dhUjStuHLS9lEprKpmAEojUz9OkTowDXy1j0RpkFykxh2KYLoTYeOsyzi+8DK5nq3+b7+Y4/j+x3ip+p1IPO3/9iuN10gwGQ38ShSC/9HqUDiOIW0PkY8dYTNcTYB10h9hiaHz6f/0fdtDr/yaajL0LbnK921XpNFPhdm+YOtQY9LAV3sYypWoZ5hiPDyBf9wJK3jRWUzqDf/78TPP30mXqWPmO47QWcMOlRf4kdxAwIWosWjgqz0MZIvUyzB2cvr3349qrIrzZOpdtAyvg651/m0420/TW49xn3MGJ85v8m+7lSxZD0Cs0B9oGWpsGvhqDwPZIvUMQ4gCH6Bv0RXYCOalu/zb6Bu/JmoKvNp8EclYxL/tVrJIlKxVTaKoLfxKpIGv9jDawpd0uAL/2KVLedI+geJLd4FPIz06r9zNVjOD2sUrfdnekSIXqyVVGgy6DDUGDXy1h4FMjjrJEK1qDLqUKdW2sIF77bOID22Bbc9NfIMj3cim37HKXknbonAdy0KsjmozRKHkBF2K2osGvtpDdtA9nS5eE5I+Z8/CpjRrUmdRkDi87EO3zmv3IsbmV/YZnLwwXJ+W7EQd9TLMYE6HV6g0GvhqD4Uhd+TIZG1zwJVMLRFh2aK5/N5qg1f/C+wJhtXa/2JHbAEj9ccyoybpT5FHCCfZSB0jOp5OBdLAV3sojriBH6sOVwsfoK21kTuyKyHTAx2PHf6GBt/CbH6SVfYZnNIaru4cANINNMiQBn4F0sBXezDeJfGSDl9QtS1s4DFnOYVY3cS6dV69B8FwV7YtdN05AJG018LP5IMuRe1FA1/tafQKyRCMo7O3ZXNqicYSvFJ7LrzxayiMHN6G1v6c/rpj2Wjm0hbCwI9WNxIRQ2ZQr7atNBr4ag9WLryBH4tYrFhQz8+KZ0BxBN6479A30vcmbF/DM+nzqElEOXpmje91VrqE94X/6PdBqnJo4Ks9RAveBTPJ8AytUK6ttZGfdc3HqZkDr/zs0Dfw4h2A8JPhNpYvqCdiTd/ZrcaTqmsBoDisgV9pNPDVHuLFATJWNVghuTJ0L20LG7CNxfZ5l8PGh2HkEELLseGF2ym0nsfjXWnOXBKuM51GxarcFr59KMdOTQkNfLWHVGmQbDScrXuAFQvqsQQeTZwHTgnWHsKAau0PweB2XppxNQBnLgnfmU5A2RDJ2odfaTTw1R6qnUH3LJWQqknGOG52LQ90NcHs5fDs98A5yCtGn78NqmZwT/YkapJRTpgb0uM4OmJmvj/YOtQ+NPDVbkXboY5hCiEaGnksp7Y28octAxRXfgZ62mH9bw78os7XYd19cMoneGLjACsXN4Wy/x6AVD0AsYIOoFZpNPDVbtmiTV3IxsIfyzuXNpMt2qxOvhPq5sNT/3zgFz3xfyFWxfZjrmNLbya83TkAkRgZSZPUAdQqjga+2i1XsKmXEZxEuAP/zCXNJKIWD6/rhTNugi1PwfoHxn9BdzusvRtOvZ5HttoAnH1UOL+wHTVi1ZAqaQu/0vgS+CJyiYisE5F2Efn8GM9/QkS6RORF7/YpP/ar/JUp2FSTxSRqgy4lUKl4hLOPauah13dh2v4Ymo+G+z8Lxdy+KzsO/Oq/Q7wazriJB9buZHFzFUfNqJ7yuitJPlJFzM4EXYbay4QDX0QiwHeAS4FlwLUismyMVX9qjFnu3W6d6H6V/7K5LDGxkXhV0KUE7oLjZrKtL8uGngJc9nX3gqqHv7jvimt+AG8+ARd/hT6rgac7erjkhFmIhLT/3lOKJIk72aDLUHvxo4V/GtBujOkwxhSAO4GQzNg8veQzwwBIQgP/XcfOAOA3a3fC4vPg1P8Gq78Dj3/97bN2/nA73P85WHIBrPgYD76+C9sxXHLCrOAKrxClSIqEM8YnIhWoqA/bmAtsLXu8DTh9jPXeLyLnAOuBvzDGbN17BRG5AbgBYMGCBT6Upg5FMet+yRZNhLs7AmBWXZKzj2rmJ89s5sZzlxC/9GvuOEOPfBle+DFEU9D1Oiw+Hz54G4jwm7U7mVuf4sSwno5Zxo5WkTDdQZeh9jJVX9r+Emg1xpwEPAj8aKyVjDG3GGPajDFtLS0tU1SaGlXMui38SDJ847+M5fqzF7FrMM99r+xwrzx+3y3wgR9CQyvUzoGLvgwf+Rkka9k5kON367u48h1zQt+dA+BEUyTJYXyaLlL5w48W/nZgftnjed6y3Ywx5ddY3wr8ow/7VT4r5tzAj6a0Swfg3KNbWNJSxQ9+v4mrls9BrAic8H73tpc7nt2CYwwfPk0/mQI4sSrS5MmXnPBM4H4E8KOF/xywVEQWiUgcuAZYVb6CiMwue/ge4HUf9qt85niBH0tpCx/AsoRPnr2IV7YP8Nyb4w8TULQd7nxuC+csbWFBU3oKK6xcJpYmTY5swQ66FFVmwoFvjCkBNwEP4Ab5XcaYV0XkiyLyHm+1PxeRV0XkJeDPgU9MdL/KfyUv8OMa+Lu9b8U86tMxbn2iY9x1fvnSW+wazPPRlQunsLLKJvE0afJkC6WgS1Fl/OjSwRhzH3DfXsv+puz+F4Av+LEvNXmMN+FHMq1f2o5KxSN89PSFfOexdjb3jLCwac/uruF8ia/e/wYnzq3bfWaPAuLVWGLIZkegQT/1VAq90lbtZvJu4MdTGvjlPn7GQqKW8Nf3rCVXfLuLwhjDNx5YR+dQni9edXx4x84ZQ8Q7tbeQGQq4ElVOA1+9regGvsS1S6fcjNokX7n6RH7f3s0f//tztHcOsblnhD+/80Vue+pNPrpyASsWhG+GsP2xvFN7896ZX6oy+NKlo6aJ0Tlc4/oRfG9/dOp8Il4r/8L/+zgAlsBfXXwMnz53ScDVVZ5I0g38YlZb+JVEA1/tJqUsDoIVTQZdSkV6/ynzOP/YGdy1ZivxiMW7l81kfqP+cRxLzAv8kgZ+RdHAV7tFSiNkSVKlFw6Nq7Eqzo3aoj+g0VN7S3nt0qkk2oevdouUsuRFW/dq4uLemV52TgO/kmjgq92ipSx5KxV0GWoaGL2Ww/HO/FKVQQNf7RZzMhQtbeGriUtWeWd6aeBXFA18tVvMzlGMaAtfTdzol7amqIFfSTTw1W4JJ0sxomedKB/EvCuSCzrrVSXRwFe7JUwOO6otfOWDaJwiUayStvAriQa+2i1hcjhRbeErf+RIYBV1msNKooGvAHdcmBQa+Mo/OUkRKWmXTiXRwFcA5EsOafKYmE5+ovyRt5JEbW3hVxINfAVAJl8kLXmIax++8kdRA7/iaOArAHIZ74rIuA6NrPxRiKSJO9qlU0k08BUA+cwgAFZCu3SUP0qRFHEnF3QZqowGvgLenqhidBxzpSbKjqRIOtqlU0k08BUAeW8Y22hSA1/5w46mSaAt/Eqiga8AKOXcC2Qi2qWjfOLE0iRNPugyVBkNfAWAnfNa+Cmd3lD5w8SqSJOjZDtBl6I8GvgKeLuFn9AJzJVfYmkSUiKb026dSqGBrwBwvJmJ4mlt4St/SNztHsyN6DSHlUIDXwFgvHHLExr4yififR+U13ltK4YGvgLAFEa7dDTwlT9GT/HNZzTwK4UGvgJAvEGuYkk9S0f5w0q4A/EVdV7biqGBrwCQYpaiiSDReNClqGki4vXhF3N68VWl0MBXrlKOnCSCrkJNI1GvhW8XdBKUSqGBrwCwSjnyaOAr/0STXuDndQC1SqGBrwCI2FkK2sJXPop7w3Q4GvgVQwNfARC1cxr4ylfxlNuH7+hE5hVDA18BELFzFCwNfOWfuHfGlylq4FcKDXwFQNTJUbKSQZehppFEejTw9SydSqGBrwCIOXlKEQ185Z/k6FDbGvgVQwNfARA3OQ185SsrGiVvYlDUwdMqhQa+AiBuCtga+MpneYljlbQPv1Jo4CsA4iaPo4GvfJYjgVXSLp1KoYGvAEiaPCaaCroMNc3kJYFla5dOpfAl8EXkEhFZJyLtIvL5MZ5PiMhPveefEZFWP/ar/JMkj6OBr3xWkASRkgZ+pZhw4ItIBPgOcCmwDLhWRJbttdr1QJ8x5ijgn4CvTXS/yj+lQp6oOBDTwFf+KloJIo4GfqXwo4V/GtBujOkwxhSAO4Gr9lrnKuBH3v27gQtERHzYt/JBLusNbqUtfOWzkpUkpoFfMfwI/LnA1rLH27xlY65jjCkBA0DT3hsSkRtEZI2IrOnq6vKhNHUw8ll3vHKJa+ArfxWtJDEnH3QZylNRX9oaY24xxrQZY9paWlqCLic0Cl7gW/F0wJWo6caOaAu/kvgR+NuB+WWP53nLxlxHRKJAHdDjw76VD4o5t0tHNPCVz+xIkrgpBF2G8vgR+M8BS0VkkYjEgWuAVXutswq4zrv/AeARY4zxYd/KB8Wce2FMRANf+cyJJIkbbeFXiuhEN2CMKYnITcADQAT4oTHmVRH5IrDGGLMK+AFwu4i0A724fxRUhSjl3RZ+JKGBr/zlRFMk0T78SjHhwAcwxtwH3LfXsr8pu58DPujHvpT/bC/wowmdwFz5y0STJE0BjAE9MS9wFfWlrQrG6BR00aQGvvKXiaWxxGBK2sqvBBr4CrvgjnUSS+ppmcpn3sV8+axOZF4JNPDV7jlH44nqgCtR044X+AUN/Iqgga92T0EXT2ngK3+NXttRyA0HXIkCDXzF24GfTGvgK3+NXtsxenGfCpYGvoJiDtsIiYROYq78FfGG6yjmdRKUSqCBr5BihiwJErFI0KWoaSYSd8/8KuW0D78SaOArpJQjRwIdwFT5Lead6jt6cZ8Klga+wiplyUs86DLUNBRNun34tnbpVAQNfIVl58iLzmer/Bf1husYvdZDBUsDXxGxcxS1ha8mweipvk5BW/iVQANfEbWzFLSFryZB3OvDNxr4FUEDXxF18hQtDXzlv0TKC/yiBn4l0MBXRJ0cJUvPwVf+SyaTFEwEitqHXwk08BVxJ08poi185b9k1CJHHIo6CUol0MBXxE0eWwNfTYJoxHKv8Shpl04l0MBXxE0OJ6pDI6vJkSeBVdIunUqgga9IUMDRFr6aJHlJYJW0S6cSaOCHnV0kTgkT1cBXkyMvSaK2tvArgQZ+2BXcMU6cuA6NrCZH3koRs7UPvxJo4Ieck3fHKTcxnc9WTQ438LWFXwk08EMulxkEQHR6QzVJSpEUcUcDvxJo4IdcfmQIgEhCW/hqcpSiaZIa+BVBAz/kChk38K1kbcCVqOnKjqZJGA38SqCBH3KFrNulE9UJzNUksaNVpMiDYwddSuhp4IdcMeu28KOpmoArUdOWN80hOoBa4DTwQ87OuWfpxFPapaMmhxkN/IJOcxg0DfyQs3NuCz+R1ha+miTeNR4l79OkCo4GfsgZr9Wlga8mi+Wd8jt6CrAKjgZ+yDn5YfImRjqlQyuoyRFJuoE/ekaYCo4GftgVRhghQToeDboSNU3tDnzt0gmcBn7IWYURMiRJxyNBl6KmqWjS7S4sZrVLJ2ga+CFnldzAj0X0raAmR8w75beUHQ64EqX/y0MuUsqQE538RE2eRJUX+DkN/KBp4IdcpJQhr4GvJlHCu8bD5LUPP2ga+CEXszPkIxr4avKkUmlKxsLJ64VXQdPAD7mYnaVoaeCryZNORMmQxBS0SydoGvghl3CylCLpoMtQ01g6EWWEJKJDKwROAz/kEk6WUlQDX02eVCxCxiSwihr4QZtQ4ItIo4g8KCIbvJ8N46xni8iL3m3VRPapfOQ4pMhha+CrSRSxhKyksHS0zMBNtIX/eeBhY8xS4GHv8Viyxpjl3u09E9yn8ov3H1Dns1WTLSdJIiUN/KBNNPCvAn7k3f8RcPUEt6emktenunv4WqUmSd5KEbU18IM20cCfaYzZ4d3fCcwcZ72kiKwRkdUicvV4GxORG7z11nR1dU2wNHVAo2dNaOCrSVaw0sQ18AN3wBGzROQhYNYYT91c/sAYY0TEjLOZhcaY7SKyGHhERF4xxmzceyVjzC3ALQBtbW3jbUv5xM4PEwEkodMbqslViqSIl3Re26AdMPCNMReO95yI7BKR2caYHSIyG+gcZxvbvZ8dIvIYsALYJ/DV1Mpnhkjz9njlSk2WYjRNoqCBH7SJdumsAq7z7l8H3Lv3CiLSICIJ734zcBbw2gT3q3xQGHFHLxwdvlapyeJE0yRMDox+cA/SRAP/q8C7RWQDcKH3GBFpE5FbvXWOA9aIyEvAo8BXjTEa+BVgdHzy0eFrlZosdqyKCA6UckGXEmoTmvXCGNMDXDDG8jXAp7z7TwEnTmQ/anIUvcCPpbSFryaXiXnXehRGIKZDeQRFr7QNsdEJzKPeaIZKTRpvInN0PJ1AaeCHmJ13//Ml0hr4apKNnvqr4+kESgM/xExuiKKJkErpR2w1uSThNiqKmYGAKwk3DfwQk2wv/VSTTsSCLkVNcybdBEBhsDvgSsJNAz/EIrleek2NTmCuJp1V1QhAcVivoA+SBn6IxfJ99FFDSgNfTTKrym3hl4Z7Aq4k3DTwQyxe6Hdb+DENfDW5EqkaciaGGdYunSBp4IdYotDHoNQSjejbQE2uunScXmpwRrSFHyT9nx5WjkOqNEguVh90JSoEGqti9JkaTEYDP0ga+GGVHyCCTT4+5iRlSvmqIR2n19RgZXuDLiXUNPDDKuP+x3OSGvhq8tWlYvRRQyzfF3QpoaaBH1beR2vHOz9aqckUjViMROpIFDXwg6SBH1Yj7tkSkWoNfDU18vEG0vYQ2KWgSwktDfyQsr3Aj1a3BFyJCotiwus+zGorPyga+CGVG3AnJ0vWauCrqeEk3att0TN1AqOBH1KFwW7yJkZNbV3QpaiQEO9qWw384Gjgh1RpuJteamioSgRdigqJSHUzACajV9sGRQM/pMxIN32mhsaqeNClqJCIe92HOmJmcDTwQ8rK9tJrqqlP69DIamqk6tzAz3rfH6mpp4EfUlFvpExt4aupUl9Tw4hJUBzSIZKDooEfUolCPwNSS0pHylRTpKEqTh812DpEcmA08MPILpGyB8lF6xGRoKtRIdFY5Y6ng35pGxgN/DAa2ALAYGJWwIWoMGlMx9lumkkObw26lNDSwA+j7g0ADFS1BluHCpWaZJRNzKUmuw3sYtDlhJIGfhh1rwcgW7s44EJUmFiWsDM2n4ixoXdT0OWEkgZ+GHWvp5da4rXNQVeiQqY3tdC907Mh2EJCSgM/hEzXBtqdOTSk9ZRMNbV2f6r0PmWqqaWBH0JO93randnMrE0GXYoKmVkzZtBFPaZbW/hB0MAPm0wvkWwPHWYOR8+sCboaFTJLWqppt+dQ6lwXdCmhpIEfNl7LaqOZw9EzqwMuRoXN4pYqNprZSPcGMCbockJHAz9svL7TvnQr9dqHr6bYkpZqOswcooUBHSY5ABr4YdP5GkWiVM1YFHQlKoTm1qfYYs11H+xaG2wxIaSBHybGYNbdxzPmeJbOqg+6GhVCliX0NK6gSAzW/SbockJHAz9Mdr6M9L3JqtJpHDVD++9VMObMnMEzkRXw+ipwnKDLCRUN/DB57V4cifCgfYqeoaMCs6S5ip/n2mBwO2x/PuhyQkUDPyyMgdfu5a36NvqoZam28FVAlsyo5iH7ZIwVg9fuCbqcUNHAD4uX74Kedh60zmZufYoGnfhEBeTEuXUMkWZz09nw/I+gf0vQJYWGBn4YDGyH+/6K0tzT+erOk7n8pNlBV6RCbHFLNSfOreOLhY8ABn7xae3LnyITCnwR+aCIvCoijoi07We9S0RknYi0i8jnJ7JPdYi2Pw+3XQ5Okd8u/T/kbeEKDXwVsPedPJdHdqXZcebfwebfw08+AEO7gi5r2ptoC38t8D7g8fFWEJEI8B3gUmAZcK2ILJvgftVY7JL7n2brc/Ds9+H298L3LwCnBB/7BXdsjLKgMc2Jc+uCrlSF3JXvmEPEEm4bORMu/yZsfhK+fRLcfT384XZ46wX3vezYQZc6rUQn8mJjzOvAgabJOw1oN8Z0eOveCVwFvDaRfY8rNwC//kswhkLJJlcskYhaJKIWxhgy+RIF26Y2GaFQMmTyRRJRwXbc+wPZItWJKLPrEgzniuQLNgikYxaxiOA4DhELIpZgAYLxLhE3owfF++GAMe6xGX1+n/UOZRllz43ed6CQgcIwFEbAzu95LOoWwLmfhZWfZm2vxVMbn+RPzlms0xqqwDVXJ3j3cTP5j9Vb+MBNH2LpjefCM9+DtXe7t1ESgXQjRFMQS0Is5d63oiDi3dz/iYjl3cru461zIGOu8/YyAxRsQ9F2SEQj2I6h5DhYlsVQrkQmX0JEGCmUyBUdqhJRapJRkrEIRdswnC+RKdgkYxZRy8KyLJqr4xhgMFuksSpOKlYWx42L4V03H97B3Y8JBf5BmguUz2m2DTh9rBVF5AbgBoAFCxYc1s76h7OYDasZyZco2AYz+ksTwQDGuD+7RHCM+5wboeKuK8KAMQzsEhwDZnT5XusZt16qElFSsSgOwkC2RKFkY1kWJcdgWRYttUmq4lFiEYtUIoYBirahZBuqkjFikb3flKP3D7QM9w0dryq7VUOqAermwczjoW4+iNAznOdPbn+SGTUJPnm2XmGrKsPfXXU8l337Cf70J3/g3pvOIn35N+DSf4TejdC1DoZ2wNBOdwiGUg6KWfdWyrp9/o7N7oaP18DafX/38n3H6zHGoWAb4hFBEAyGku2QK9oUbId0PIptO/RlCqTiESIi9I3kKTl7bmusPxFJMVRbFsUhh6yB3O7UgBpLcByDAWygvANrB4ZoRLBEcIxhZ3IXp73Ln+Nc7oCBLyIPAWNNfnqzMeZeP4sxxtwC3ALQ1tZ2WCMrSVUTpw9/nRUL6jn/mBnMqU/ROZRn12COWERY0JimNhnjha39tFQnOH5OLZ1DeVLxCK1NVSxpqeKJDd389rWdnLaokeNm11KyDR3dI2TyJSKWkCvaDOVLdA7meXpjD1t6M1gCba2NHDurhsFckfp0nI6uYR58bRfOOP+SulSMK06aTUfXCCOFEul4hOPn1PGO+fUsn1fP/MbUhFvjw/kSn/qPNXQP57n7xjNprk5MaHtK+WVmbZJvXbOc6374LH9y+/Pcel0biWgEmpe6t8O0rS/D/3t4A70jBdLxKFt6MyxuqeK9K+by+w3d3PPidnYN5knFIsyoTTCQLdKf2XfKxZm1CXb1up+az1zSxIXHzaQ+HaNnuEA6EaEqHiVbtFnUXMUxM2soOYbGqjgRSyiUHDZ1j7BzMEddKkZrU5r6dJxc0SZbsBnIFnl8QxcRSzhudi2rO3rY2DnCSL5EVSLK0pnVnHbYR2B8YnwYsU5EHgP+pzFmzRjPnQH8rTHmYu/xFwCMMf+wv222tbWZNWv22dxBGcwVqU3GDuu1fusbKdA9nGfnYI72zmHiUYumqgSJmMVtT77J0x09HDerhsaqOP3ZIq+9NUi+5J6x0JCOMbchRUt1gs9ecizHza496P3mijZPtnfzb49t5IWt/fzrR07m4uN10nJVee56biuf/fnLtC1s4GNnLOTSE2YTj+7/68WBTJG1bw1QlYhy57NbeHx9Fw1VcWzHsKl7BBFobaoiU7CZU5/kpa0DZIs2UUs475gWzjtmBu2dw/Rl3D8Kx82u4R3z6pnbkOL+V3aACNecOp/NPRmGckVWLGiYoqMxcSLyvDFmzJNopiLwo8B64AJgO/Ac8GFjzKv72+ZEAv9IYkb7+T1F22H9riFe2jrAS1v76RrO8/K2fgZzJa56xxyaqhN0DuaoSUZZubiJ0xc30eidUz+Uc1sqnUN5/urul+joGqEqHuHv33ciVy2fG9Q/UakDuuu5rXzrofW8NZBjcUsVf3Hh0Zx/7AwiIry2Y4DVHb3Up2PUp+Ks2znIbU+9yWCuBEA8YnHhshnkig4RS5hbn+KGcxYzpz61e/s9w3me2dTL6YsaaZrmn3InLfBF5L3APwMtQD/wojHmYhGZA9xqjLnMW+8y4FtABPihMeYrB9p2WAL/YPQM5/mbVa/yTEcvA9kCLdUJ+rNFMgX3DIZZtUmiEWFbX3b3a2bVJvm7q47nvGNa3I/JSlU4xzE88kYnf3/f63R4rfTx4um8Y1q47oxWMgWbFQvq9wj3sJv0Fv5k0MDfv6Lt8PK2/t3fIeRLDke1VDOjNkHRNlxx0mwd714dkUq2w3Nv9vF0Rw/JmEVrUxVnLmlipGAzkCkyrzFVMV22lUgDXymlQmJ/ga9DKyilVEho4CulVEho4CulVEho4CulVEho4CulVEho4CulVEho4CulVEho4CulVEhU7IVXItIFbJ7AJpqBbp/K8ZPWdWi0rkOjdR2a6VjXQmNMy1hPVGzgT5SIrBnvarMgaV2HRus6NFrXoQlbXdqlo5RSIaGBr5RSITGdA/+WoAsYh9Z1aLSuQ6N1HZpQ1TVt+/CVUkrtaTq38JVSSpXRwFdKqZA4ogNfRD4oIq+KiCMi457CJCKXiMg6EWkXkc+XLV8kIs94y38qIr5MESUijSLyoIhs8H7uMwOyiJwvIi+W3XIicrX33G0isqnsueVTVZe3nl2271Vly4M8XstF5Gnv9/2yiHyo7Dnfjtd475Wy5xPev73dOxatZc99wVu+TkQuPtwaDrOu/yEir3nH5mERWVj23Ji/zyms7RMi0lVWw6fKnrvO+71vEJHrprCmfyqrZ72I9Jc9N2nHS0R+KCKdIrJ2nOdFRP6fV/fLInJy2XMTP1bGmCP2BhwHHAM8BrSNs04E2AgsBuLAS8Ay77m7gGu8+98FPu1TXf8IfN67/3ngawdYvxHoBdLe49uAD0zC8TqouoDhcZYHdryAo4Gl3v05wA6g3s/jtb/3Stk6fwp817t/DfBT7/4yb/0EsMjbTsSn43MwdZ1f9v759Ghd+/t9TmFtnwD+ZYzXNgId3s8G737DVNS01/p/hjvX9lQcr3OAk4G14zx/GXA/IMBK4Bk/j9UR3cI3xrxujFl3gNVOA9qNMR3GmAJwJ3CViAjwLuBub70fAVf7VNpV3vYOdrsfAO43xmR82v94DrWu3YI+XsaY9caYDd79t4BOYMyrCSdgzPfKfmq9G7jAOzZXAXcaY/LGmE1Au7e9KanLGPNo2ftnNTDPp31PuLb9uBh40BjTa4zpAx4ELgmgpmuBO3zY7wEZYx7HbdyN5yrgP4xrNVAvIrPx6Vgd0YF/kOYCW8seb/OWNQH9xpjSXsv9MNMYs8O7vxOYeYD1r2HfN9xXvI90/yQiiSmuKykia0Rk9Wg3ExV0vETkNNyW28ayxX4cr/HeK2Ou4x2LAdxjczCvPVyHuu3rcVuJo8b6ffrlYGt7v/f7uVtE5h/iayerJryur0XAI2WLJ/N4Hch4tftyrKITKm0KiMhDwKwxnrrZGHPvVNczan91lT8wxhgRGffcV++v94nAA2WLv4AbfHHc83E/B3xxCutaaIzZLiKLgUdE5BXcYDtsPh+v24HrjDGOt/iwj9d0IyIfBdqAc8sW7/P7NMZsHHsLk+KXwB3GmLyI/AnuJ6R3TeH+9+ca4G5jjF22LOjjNWkqPvCNMRdOcBPbgfllj+d5y3pwPy5FvZba6PIJ1yUiu0RktjFmhxdQnfvZ1B8BvzDGFMu2PdrazYvIvwP/cyrrMsZs9352iMhjwArg5wR8vESkFvg17h/71WXbPuzjtZfx3itjrbNNRKJAHe576WBee7gOatsiciHuH9BzjTH50eXj/D79CrAD1maM6Sl7eCvudzajrz1vr9c+NhU1lbkG+Ez5gkk+XgcyXu2+HKswdOk8BywV9wyTOO4veJVxvwl5FLf/HOA6wK9PDKu87R3MdvfpP/RCb7Tf/GpgzG/0J6MuEWkY7RIRkWbgLOC1oI+X97v7BW7/5t17PefX8RrzvbKfWj8APOIdm1XANeKexbMIWAo8e5h1HHJdIrIC+B7wHmNMZ9nyMX+fPtV1sLXNLnv4HuB17/4DwEVejQ3ARez5SXfSavLqOhb3C9Cny5ZN9vE6kFXAx72zdVYCA16Dxp9jNVnfRk/FDXgvbl9WHtgFPOAtnwPcV7beZcB63L/SN5ctX4z7n7Id+BmQ8KmuJuBhYAPwENDoLW8Dbi1brxX3L7e11+sfAV7BDa4fA9VTVRdwprfvl7yf11fC8QI+ChSBF8tuy/0+XmO9V3C7h97j3U96//Z271gsLnvtzd7r1gGX+vxeP1BdD3n/B0aPzaoD/T6nsLZ/AF71angUOLbstZ/0jmU78MdTVZP3+G+Br+71ukk9XriNux3ee3kb7vctNwI3es8L8B2v7lcoO/vQj2OlQysopVRIhKFLRymlFBr4SikVGhr4SikVEhr4SikVEhr4SikVEhr4SikVEhr4SikVEv8fzHs38sT6N7MAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  2.0543837547302246 %\n"
     ]
    }
   ],
   "source": [
    "with torch.no_grad():\n",
    "    hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    cell_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    prediction, _ = lstm(test_tensor, (hidden_pred, cell_pred))\n",
    "    \n",
    "print(prediction.shape)\n",
    "\n",
    "final_time_output = prediction[-1, :]\n",
    "print(\"final_time_output\", final_time_output.shape)\n",
    "\n",
    "final_time_output1 = final_time_output[-1, :]\n",
    "print(final_time_output1.shape)\n",
    "\n",
    "final_out = final_time_output1.detach().numpy().reshape(-1,)\n",
    "final_true = u1[:,-1].reshape(-1,1)\n",
    "\n",
    "print(\"prediction\", final_out.shape)\n",
    "plt.plot(x.T, final_out)\n",
    "plt.plot(x.T, final_true)\n",
    "plt.show()\n",
    "# # quit()\n",
    "\n",
    "# # # Flatten prediction tensor\n",
    "# prediction = prediction.view(-1).numpy()\n",
    "# print(prediction.shape)\n",
    "\n",
    "# # # Convert NumPy arrays to PyTorch tensors\n",
    "final_out_tensor = torch.from_numpy(final_out)\n",
    "final_true_tensor = torch.from_numpy(final_true)\n",
    "\n",
    "# print(final_out_tensor.shape)\n",
    "# print(final_true_tensor.shape)\n",
    "\n",
    "# # # Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean((final_out_tensor - final_true_tensor)**2)/ torch.mean(final_true_tensor**2)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ebd811b0",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
